(command.CommandList children: [ (command.AndOr children: [ (command.Simple blame_tok: <builtin> more_env: [] words: [{<builtin>} {<vmstate>}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ops: [<Id.Op_DPipe _>] ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <err_exit> name: err_exit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<-u2>} {<-n>} {(DQ <Id.Lit_BadBackslash '\\'> <t>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <print> more_env: [] words: [ {<print>} {<-u2>} {<-r>} {(${ Id.VSub_Name Command) <Id.Lit_LBracket '['> ($ Id.VSub_Number 1) <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> } { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 2>}) right: <Id.Arith_RBrace _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <let> more_env: [] words: [{<let>} {<Id.Lit_VarLike 'Errors+='> <1>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <alias> more_env: [] words: [{<alias>} {<Id.Lit_VarLike 'err_exit='> (SQ <'err_exit $LINENO'>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'Command='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'Command='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Command='> name:Command) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 0> var_name: 0 suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <integer> more_env: [] words: [{<integer>} {<Id.Lit_VarLike 'Errors='> <0>}] redirects: [] do_fork: T ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <test_reset> name: test_reset body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <integer> more_env: [] words: [{<integer>} {<i>} {<Id.Lit_VarLike 'n='> ($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: ($ Id.Lit_ArithVarLike n) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'u='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'u='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u='> name:u) op: assign_op.Equal rhs: {($ Id.VSub_DollarName i)} ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment left: <Id.Lit_VarLike 'n='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'n='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n) op: assign_op.Equal rhs: {<1000>} ) ] redirects: [] ) (command.Simple blame_tok: <test_reset> more_env: [] words: [{<test_reset>} {($ Id.VSub_DollarName n)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <test_reset> more_env: [] words: [{<test_reset>} {($ Id.VSub_DollarName n)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <test_reset> more_env: [] words: [{<test_reset>} {($ Id.VSub_DollarName n)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'b='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike b) right: ($ Id.Lit_ArithVarLike a) ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} { (DQ <'variable value reset memory leak -- '> (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Minus left: ($ Id.Lit_ArithVarLike b) right: ($ Id.Lit_ArithVarLike a) ) right: <Id.Right_DollarDParen _> ) <' bytes after '> ($ Id.VSub_DollarName n) <' iterations'> ) } ] redirects: [] do_fork: T ) ] spids: [266 279] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [exp] iterable: (for_iter.Words words:[{<65535>} {<65536>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'got='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'got='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'x=$(printf "%.*c" '>) ($ Id.VSub_DollarName exp) (SQ <' x); print ${#x}'>) } ] redirects: [ (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName got)} right: {($ Id.VSub_DollarName exp)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} { (DQ <'large command substitution failed -- expected '> ($ Id.VSub_DollarName exp) <', got '> ($ Id.VSub_DollarName got) ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'data='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'data='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'data='> name:data) op: assign_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\';))' > ) } ) ] redirects: [] ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-C>} {<stat>}] redirects: [ (Redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName data))} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Pipeline children: [ (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 500>} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<-r>} {<-->} {(DQ ($ Id.VSub_DollarName data))}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-u> ($ Id.VSub_DollarName n)} {<-C>} {<stat>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [(Redir op:<Id.Redir_LessAnd '{n}<&'> loc:(redir_loc.VarName name:n) arg:{<0->})] ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'b='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike b) right: ($ Id.Lit_ArithVarLike a) ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'memory leak with read -C when deleting compound variable'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-C>} {<stat>}] redirects: [ (Redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName data))} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 500>} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-C>} {<stat>}] redirects: [ (Redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName data))} ) ] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b) op: assign_op.Equal rhs: {<0> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <vmstate> more_env: [] words: [{<vmstate>} {<--format> <Id.Lit_Equals '='> (SQ <'+%(size)u'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_Great left: ($ Id.Lit_ArithVarLike b) right: ($ Id.Lit_ArithVarLike a) ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'memory leak with read -C when using <<<'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.TernaryOp cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike Errors) right: {<Id.Lit_Digits 125>} ) true_expr: ($ Id.Lit_ArithVarLike Errors) false_expr: {<Id.Lit_Digits 125>} ) right: <Id.Right_DollarDParen _> ) } ) ] )