(
(let $1 (DataType 'String))
(let $2 '('"value" $1))
(let $3 (StructType '('"key" $1) '('"subkey" $1) $2))
(let $4 '('('"_logical_id" '11427) '('"_id" '"4765f98a-71557014-22bf763d-2cbc374f") '('"_wide_channels" $3)))
(let $5 (DqPhyStage '() (lambda '() (block '(
  (let $18 '@@["StructType";[["key";["DataType";"String"]];["subkey";["DataType";"String"]];["value";["DataType";"String"]]]]@@)
  (let $19 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $18)))
  (let $20 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" '"false")))))
  (let $21 (YtStat '('Id '"Input") '('RecordsCount '"30") '('DataSize '"1170") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
  (let $22 (YtTable '"Input" $19 $20 $21 '() (Void) (Void) '"/Root/plato"))
  (let $23 '('"key" '"subkey" '"value"))
  (let $24 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $22 $23 (Void) (Void))) '()))))
  (return (FromFlow (WideFilter (DqReadWideWrap $24 '()) (lambda '($25 $26 $27) (== $25 (String '1))))))
))) $4))
(let $6 (DqCnHashShuffle (TDqOutput $5 '0) '('0) '0 '"HashV2"))
(let $7 (ListType $1))
(let $8 (DataType 'Uint64))
(let $9 (OptionalType $8))
(let $10 (StructType '('"agglist1" $7) '('"agglist2" $7) '('"sum1" $8) '('"sum2" $9) $2))
(let $11 '('('"_logical_id" '12406) '('"_id" '"922ca2ea-2f61bad4-46b0116b-c63e8212") '('"_wide_channels" $10)))
(let $12 (DqPhyStage '($6) (lambda '($28) (block '(
  (let $29 (NarrowSqueezeToDict (ToFlow $28) (lambda '($34 $35 $36) $34) (lambda '($37 $38 $39) (AsStruct '('"key" $37) '('"subkey" $38) '('"value" $39))) '('Auto 'Many)))
  (let $30 (Bool 'true))
  (let $31 (Chopper (OrderedFlatMap $29 (lambda '($40) (OrderedFlatMap (DictPayloads $40) (lambda '($41) (Sort $41 $30 (lambda '($42) (Member $42 '"value"))))))) (lambda '($43) (Member $43 '"key")) (lambda '($44 $45) (AggrNotEquals $44 (Member $45 '"key"))) (lambda '($46 $47) (block '(
    (let $48 (FromFlow $47))
    (let $49 (Uint64 '0))
    (let $50 (QueueCreate $3 (Void) $49 (DependsOn $48)))
    (let $51 (Uint64 '"18446744073709551615"))
    (let $52 (lambda '($88) (Member $88 'AggregateList1)))
    (let $53 (List $7))
    (let $54 (OptionalType (DataType 'Uint32)))
    (let $55 (lambda '($91) (Member $91 'Sum1)))
    (let $56 (Nothing $9))
    (let $57 (lambda '($92) (Just (SafeCast $92 $8))))
    (let $58 (Chain1Map (ToFlow (PreserveStream $48 $50 $51)) (lambda '($59) (block '(
      (let $60 (Uint64 '1))
      (let $61 (DependsOn $59))
      (let $62 (QueueRange $50 $60 $51 $61))
      (let $63 (FlatMap $62 (lambda '($85) $85)))
      (let $64 (Member $59 '"subkey"))
      (let $65 (AsList $64))
      (let $66 (Fold $63 $65 (lambda '($86 $87) (Insert $87 (Member $86 '"subkey")))))
      (let $67 '('AggregateList0 $66))
      (let $68 (QueueCreate (StructType '('AggregateList1 $7) '('Sum1 $9)) $60 $60 $61))
      (let $69 (QueuePeek $68 $49 $61))
      (let $70 (IfPresent $69 $52 $53))
      (let $71 '('AggregateList1 $70))
      (let $72 (SafeCast $64 $54))
      (let $73 (Fold $63 (SafeCast (Unwrap $72) $8) (lambda '($89 $90) (AggrAdd (SafeCast (Unwrap (SafeCast (Member $89 '"subkey") $54)) $8) $90))))
      (let $74 '('Sum0 $73))
      (let $75 (IfPresent $69 $55 $56))
      (let $76 '('Sum1 $75))
      (let $77 (AsStruct $67 $71 $74 $76 '('"key" (Member $59 '"key")) '('"subkey" $64) '('"value" (Member $59 '"value"))))
      (let $78 (AsStruct $67 $71 $74 $76))
      (let $79 '('AggregateList1 $65))
      (let $80 (IfPresent $72 $57 $56))
      (let $81 '('Sum1 $80))
      (let $82 (AsStruct $67 $79 $74 $81))
      (let $83 (AsStruct $79 $81))
      (let $84 (Seq $78 $82 $83 '($82 (QueuePush (QueuePop $68) $83))))
      (return '($77 $84))
    ))) (lambda '($93 $94) (block '(
      (let $95 (Nth $94 '1))
      (let $96 (Nth $95 '0))
      (let $97 '('AggregateList0 (Member $96 'AggregateList0)))
      (let $98 (Nth $95 '1))
      (let $99 (QueuePeek $98 $49 (DependsOn $93)))
      (let $100 (IfPresent $99 $52 $53))
      (let $101 '('AggregateList1 $100))
      (let $102 '('Sum0 (Member $96 'Sum0)))
      (let $103 (IfPresent $99 $55 $56))
      (let $104 '('Sum1 $103))
      (let $105 (Member $93 '"subkey"))
      (let $106 (AsStruct $97 $101 $102 $104 '('"key" (Member $93 '"key")) '('"subkey" $105) '('"value" (Member $93 '"value"))))
      (let $107 (AsStruct $97 $101 $102 $104))
      (let $108 '('AggregateList1 (Insert (Member $96 'AggregateList1) $105)))
      (let $109 (IfPresent (SafeCast $105 $54) $57 $56))
      (let $110 '('Sum1 (AggrAdd $109 (Member $96 'Sum1))))
      (let $111 (AsStruct $97 $108 $102 $110))
      (let $112 (AsStruct $108 $110))
      (let $113 (Seq $107 $111 $112 '($111 (QueuePush (QueuePop $98) $112))))
      (return '($106 $113))
    )))))
    (return (OrderedMap $58 (lambda '($114) (block '(
      (let $115 (Nth $114 '0))
      (return (AsStruct '('AggregateList0 (Member $115 'AggregateList0)) '('AggregateList1 (Member $115 'AggregateList1)) '('Sum0 (Member $115 'Sum0)) '('Sum1 (Member $115 'Sum1)) '('"value" (Member $115 '"value"))))
    )))))
  )))))
  (let $32 (Sort (Map $31 (lambda '($116) (AsStruct '('"agglist1" (Member $116 'AggregateList0)) '('"agglist2" (Member $116 'AggregateList1)) '('"sum1" (Member $116 'Sum0)) '('"sum2" (Member $116 'Sum1)) '('"value" (Member $116 '"value"))))) $30 (lambda '($117) (Member $117 '"value"))))
  (let $33 (lambda '($118) (Member $118 '"agglist1") (Member $118 '"agglist2") (Member $118 '"sum1") (Member $118 '"sum2") (Member $118 '"value")))
  (return (FromFlow (ExpandMap $32 $33)))
))) $11))
(let $13 (DqCnMerge (TDqOutput $12 '0) '('('"4" '"Asc"))))
(let $14 (DqPhyStage '($13) (lambda '($119) (FromFlow (NarrowMap (ToFlow $119) (lambda '($120 $121 $122 $123 $124) (AsStruct '('"agglist1" $120) '('"agglist2" $121) '('"sum1" $122) '('"sum2" $123) '('"value" $124)))))) '('('"_logical_id" '12418) '('"_id" '"576ca3f-aefb3949-1f99b6b7-a3e9dd0e"))))
(let $15 '($5 $12 $14))
(let $16 '('"value" '"sum1" '"agglist1" '"sum2" '"agglist2"))
(let $17 (DqCnResult (TDqOutput $14 '0) $16))
(return (KqpPhysicalQuery '((KqpPhysicalTx $15 '($17) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $10) '0 '0)) '('('"type" '"query"))))
)
