(
(let $1 '@@["StructType";[["key";["DataType";"String"]];["subkey";["DataType";"String"]];["value";["DataType";"String"]]]]@@)
(let $2 (YqlRowSpec '('NativeYtTypeFlags '0) '('StrictSchema '1) '('UniqueKeys '0) '('Type $1)))
(let $3 (YtMeta '('CanWrite '1) '('DoesExist '1) '('YqlCompatibleScheme '1) '('InferredScheme '0) '('IsDynamic '0) '('Attrs '('('"native_strict_schema" 'false)))))
(let $4 (YtStat '('Id '"spider_info") '('RecordsCount '"8") '('DataSize '"582") '('ChunkCount '1) '('ModifyTime '0) '('Revision '0)))
(let $5 (YtTable '"spider_info" $2 $3 $4 '() (Void) (Void) '"/Root/plato"))
(let $6 '('"key" '"subkey" '"value"))
(let $7 (YtReadTable! world (DataSource '"yt" '"/Root/plato") '((YtSection '((YtPath $5 $6 (Void) (Void))) '()))))
(let $8 (DqReadWideWrap $7 '()))
(let $9 (DataType 'String))
(let $10 (OptionalType $9))
(let $11 '($10))
(let $12 (CallableType '() $11 $11))
(let $13 (Udf '"Url.GetHost" (Void) (VoidType) '"" $12 (VoidType) '"" '('('"blocks"))))
(let $14 '('"host" $10))
(let $15 '('"ip" $9))
(let $16 (Nothing (OptionalType (StructType $14 $15))))
(let $17 (lambda '($53) (Member $53 '"host") (Member $53 '"ip")))
(let $18 (lambda '($54 $55) $54 $55))
(let $19 (lambda '($56 $57 $58 $59) (block '(
  (let $60 (Uint64 '1))
  (return $60)
))))
(let $20 (lambda '($61 $62 $63 $64 $65) (AggrAdd $65 (Uint64 '1))))
(let $21 (lambda '($66 $67 $68) $68 $66 $67))
(let $22 '('"_logical_id" '4383))
(let $23 (DataType 'Uint64))
(let $24 (StructType '('_yql_agg_0 $23) $14 $15))
(let $25 '('"_wide_channels" $24))
(let $26 '($22 '('"_id" '"dad330ae-835026cb-385c505b-1400e28b") $25))
(let $27 (DqPhyStage '() (lambda '() (block '(
  (let $48 (Uint64 '1))
  (return (DqPhyHashCombine (WideToBlocks (FromFlow (ExpandMap (NarrowFlatMap $8 (lambda '($49 $50 $51) (block '(
    (let $52 (Apply $13 (Just $51)))
    (return (If (And (Exists $52) (== $50 (String '"RESULT"))) (Just (AsStruct '('"host" $52) '('"ip" $49))) $16))
  )))) $17))) '-1073741824 $18 $19 $20 $21))
))) $26))
(let $28 '($22 '('"_id" '"56e87846-e57c370-21459c64-c46be9e6") $25))
(let $29 (DqPhyStage '() (lambda '() (DqPhyHashCombine (WideToBlocks (FromFlow (ExpandMap (NarrowFlatMap $8 (lambda '($69 $70 $71) (block '(
  (let $72 (Apply $13 (Just $71)))
  (return (If (And (Exists $72) (== $70 (String '"BAN_DETECTED"))) (Just (AsStruct '('"host" $72) '('"ip" $69))) $16))
)))) $17))) '-1073741824 $18 $19 $20 $21)) $28))
(let $30 '('1 '2))
(let $31 (DqCnHashShuffle (TDqOutput $29 '0) $30 '0 '"HashV2"))
(let $32 (lambda '($74 $75 $76) $75 $76))
(let $33 (lambda '($77 $78 $79 $80 $81) $79))
(let $34 (lambda '($82 $83 $84 $85 $86 $87) (AggrAdd $84 $87)))
(let $35 (StructType '('Count0 $23) $14 $15))
(let $36 '('('"_logical_id" '4470) '('"_id" '"1a87f37c-7de57c81-c44e5037-db3e4f57") '('"_partition_mode" '"aggregate") '('"_wide_channels" $35)))
(let $37 (DqPhyStage '($31) (lambda '($73) (FromFlow (WideCombiner (ToFlow (WideFromBlocks $73)) '"" $32 $33 $34 $21))) $36))
(let $38 (DqCnHashShuffle (TDqOutput $27 '0) $30 '0 '"HashV2"))
(let $39 (DqCnBroadcast (TDqOutput $37 '0)))
(let $40 (StructType '('"fetcher_count" $23) $14 $15 '('"request_count" $23)))
(let $41 '('('"_logical_id" '4746) '('"_id" '"4487c3b7-d140620-11827a73-89161105") '('"_wide_channels" $40)))
(let $42 (DqPhyStage '($38 $39) (lambda '($88 $89) (block '(
  (let $90 (lambda '($94 $95 $96) (Exists $95)))
  (let $91 '('Many 'Hashed 'Compact))
  (let $92 (SqueezeToDict (NarrowFlatMap (WideFilter (ToFlow $89) $90) (lambda '($97 $98 $99) (IfPresent (FilterNullElements (Just '($99 $98)) '('1)) (lambda '($100) (block '(
    (let $101 (AsStruct '('Count0 $97) '('"host" $98) '('"ip" $99)))
    (return (Just '($100 $101)))
  ))) (Nothing (OptionalType (TupleType (TupleType $9 $9) $35)))))) (lambda '($102) (Nth $102 '0)) (lambda '($103) (Nth $103 '1)) $91))
  (let $93 (lambda '($107 $108 $109 $110) $107 $109 $110 $108))
  (return (FromFlow (WideMap (WideSort (FlatMap $92 (lambda '($104) (block '(
    (let $105 (WideCombiner (ToFlow (WideFromBlocks $88)) '"" $32 $33 $34 $21))
    (let $106 '('0 '1 '1 '2 '2 '3))
    (return (MapJoinCore (WideFilter $105 $90) $104 'Inner '('2 '1) '('"ip" '"host") $106 '('Count0 '0) '('"results.ip" '"results.host") '('"bans.ip" '"bans.host")))
  )))) '('('0 (Bool 'false)))) $93)))
))) $41))
(let $43 (DqCnMerge (TDqOutput $42 '0) '('('0 '"Desc"))))
(let $44 (DqPhyStage '($43) (lambda '($111) (FromFlow (NarrowMap (ToFlow $111) (lambda '($112 $113 $114 $115) (AsStruct '('"fetcher_count" $112) '('"host" $113) '('"ip" $114) '('"request_count" $115)))))) '('('"_logical_id" '4758) '('"_id" '"1a15de0a-a7211336-b29498d1-ccddf3f7"))))
(let $45 '($27 $29 $37 $42 $44))
(let $46 '('"ip" '"host" '"request_count" '"fetcher_count"))
(let $47 (DqCnResult (TDqOutput $44 '0) $46))
(return (KqpPhysicalQuery '((KqpPhysicalTx $45 '($47) '() '('('"type" '"generic")))) '((KqpTxResultBinding (ListType $40) '0 '0)) '('('"type" '"query"))))
)
