(CommandList
  children: [
    (AndOr
      children: [
        (SimpleCommand
          words: [{(builtin)} {(vmstate)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[61])]
        )
        (C {(exit)} {(0)})
      ]
      op_id: Op_DPipe
    )
    (FuncDef
      name: err_exit
      body: 
        (BraceGroup
          children: [
            (C {(print)} {(-u2)} {(-n)} {(DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\t">))})
            (C {(print)} {(-u2)} {(-r)} 
              {(${ VSub_Name Command) (Lit_Other "[") ($ VSub_Number "$1") (Lit_Other "]") 
                (Lit_Other ":")
              } 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_At "@">
                    suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)}))
                    spids: [104 108]
                  )
                )
              }
            )
            (C {(let)} {(Lit_VarLike "Errors+=") (1)})
          ]
          spids: [75]
        )
      spids: [71 74]
    )
    (C {(alias)} {(Lit_VarLike "err_exit=") (SQ <"err_exit $LINENO">)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:Command)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Number 0>
                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)})
                spids: [128 133]
              )
            }
          spids: [127]
        )
      ]
      spids: [127]
    )
    (C {(integer)} {(Lit_VarLike "Errors=") (0)})
    (FuncDef
      name: test_reset
      body: 
        (BraceGroup
          children: [
            (C {(integer)} {(i)} {(Lit_VarLike "n=") ($ VSub_Number "$1")})
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:n)
                )
              update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:u)
                          op: Equal
                          rhs: {($ VSub_Name "$i")}
                          spids: [186]
                        )
                      ]
                      spids: [186]
                    )
                  ]
                  spids: [184 190]
                )
            )
          ]
          spids: [149]
        )
      spids: [145 148]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:n) op:Equal rhs:{(1000)} spids:[195])]
      spids: [195]
    )
    (C {(test_reset)} {($ VSub_Name "$n")})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:a)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [209 217]
              )
            }
          spids: [207]
        )
      ]
      spids: [207]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:b)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [221 229]
              )
            }
          spids: [219]
        )
      ]
      spids: [219]
    )
    (C {(test_reset)} {($ VSub_Name "$n")})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:a)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [238 246]
              )
            }
          spids: [236]
        )
      ]
      spids: [236]
    )
    (C {(test_reset)} {($ VSub_Name "$n")})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:b)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [254 262]
              )
            }
          spids: [252]
        )
      ]
      spids: [252]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Great
                  left: (ArithVarRef name:b)
                  right: (ArithVarRef name:a)
                )
            )
          ]
          action: [
            (C {(err_exit)} 
              {
                (DQ ("variable value reset memory leak -- ") 
                  (ArithSubPart
                    anode: 
                      (ArithBinary
                        op_id: Arith_Minus
                        left: (ArithVarRef name:b)
                        right: (ArithVarRef name:a)
                      )
                    spids: [284 289]
                  ) (" bytes after ") ($ VSub_Name "$n") (" iterations")
                )
              }
            )
          ]
          spids: [-1 278]
        )
      ]
      spids: [-1 295]
    )
    (ForEach
      iter_name: exp
      iter_words: [{(65535)} {(65536)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:got)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {($ VSub_Name "$SHELL")}
                                  {(-c)}
                                  {(SQ <"x=$(printf \"%.*c\" ">) ($ VSub_Name "$exp") 
                                    (SQ <" x); print ${#x}">)
                                  }
                                ]
                                redirects: [
                                  (Redir
                                    op_id: Redir_GreatAnd
                                    fd: 2
                                    arg_word: {(1)}
                                    spids: [328]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [315 330]
                      )
                    }
                  spids: [314]
                )
              ]
              spids: [314]
            )
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {($ VSub_Name "$got")}
                      right: {($ VSub_Name "$exp")}
                    )
                )
                (C {(err_exit)} 
                  {
                    (DQ ("large command substitution failed -- expected ") ($ VSub_Name "$exp") 
                      (", got ") ($ VSub_Name "$got")
                    )
                  }
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [312 354]
        )
      spids: [307 -1]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:data)
          op: Equal
          rhs: 
            {
              (DQ 
                (
"(v=;sid=;di=;hi=;ti='1328244300';lv='o';id='172.3.161.178';var=(k='conn_num._total';u=;fr=;l='Number of Connections';n='22';t='number';))"
                )
              )
            }
          spids: [357]
        )
      ]
      spids: [357]
    )
    (SimpleCommand
      words: [{(read)} {(-C)} {(stat)}]
      redirects: [(Redir op_id:Redir_TLess fd:-1 arg_word:{(DQ ($ VSub_Name "$data"))} spids:[368])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:a)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [376 384]
              )
            }
          spids: [374]
        )
      ]
      spids: [374]
    )
    (Pipeline
      children: [
        (ForExpr
          init: 
            (BinaryAssign
              op_id: Arith_Equal
              left: (LhsName name:i)
              right: (ArithWord w:{(Lit_Digits 0)})
            )
          cond: 
            (ArithBinary
              op_id: Arith_Less
              left: (ArithVarRef name:i)
              right: (ArithWord w:{(Lit_Digits 500)})
            )
          update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
          body: 
            (DoGroup
              children: [(C {(print)} {(-r)} {(--)} {(DQ ($ VSub_Name "$data"))})]
              spids: [406 418]
            )
        )
        (While
          cond: [(C {(read)} {(-u) ($ VSub_Name "$n")} {(-C)} {(stat)})]
          body: (DoGroup children:[(C {(Lit_Other ":")})] spids:[434439])
        )
      ]
      negated: False
    )
    (SimpleCommand
      words: [{(Lit_LBrace "{") (n) (Lit_RBrace "}")}]
      redirects: [(Redir op_id:Redir_LessAnd fd:-1 arg_word:{(0-)} spids:[444])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:b)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [449 457]
              )
            }
          spids: [447]
        )
      ]
      spids: [447]
    )
    (AndOr
      children: [
        (DParen
          child: (ArithBinary op_id:Arith_Great left:(ArithVarRef name:b) right:(ArithVarRef name:a))
        )
        (C {(err_exit)} {(SQ <"memory leak with read -C when deleting compound variable">)})
      ]
      op_id: Op_DAmp
    )
    (SimpleCommand
      words: [{(read)} {(-C)} {(stat)}]
      redirects: [(Redir op_id:Redir_TLess fd:-1 arg_word:{(DQ ($ VSub_Name "$data"))} spids:[485])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:a)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [493 501]
              )
            }
          spids: [491]
        )
      ]
      spids: [491]
    )
    (ForExpr
      init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)}))
      cond: 
        (ArithBinary
          op_id: Arith_Less
          left: (ArithVarRef name:i)
          right: (ArithWord w:{(Lit_Digits 500)})
        )
      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [{(read)} {(-C)} {(stat)}]
              redirects: [
                (Redir
                  op_id: Redir_TLess
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$data"))}
                  spids: [531]
                )
              ]
            )
          ]
          spids: [523 537]
        )
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:b)
          op: Equal
          rhs: 
            {(0) 
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(vmstate)} {(--format) (Lit_Other "=") (SQ <"+%(size)u">)})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [541 549]
              )
            }
          spids: [539]
        )
      ]
      spids: [539]
    )
    (AndOr
      children: [
        (DParen
          child: (ArithBinary op_id:Arith_Great left:(ArithVarRef name:b) right:(ArithVarRef name:a))
        )
        (C {(err_exit)} {(SQ <"memory leak with read -C when using <<<">)})
      ]
      op_id: Op_DAmp
    )
    (C {(exit)} 
      {
        (ArithSubPart
          anode: 
            (TernaryOp
              cond: 
                (ArithBinary
                  op_id: Arith_Less
                  left: (ArithVarRef name:Errors)
                  right: (ArithWord w:{(Lit_Digits 125)})
                )
              true_expr: (ArithVarRef name:Errors)
              false_expr: (ArithWord w:{(Lit_Digits 125)})
            )
          spids: [573 582]
        )
      }
    )
  ]
)