(CommandList
  children: [
    (AndOr
      ops: [Op_DAmp]
      children: [
        (C {(Lit_Other '[')} 
          {
            (BracedVarSub
              token: <VSub_Name VARIABLES_MAP_SH>
              suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(true)})
              spids: [9 13]
            )
          } {(Lit_Other ']')}
        )
        (ControlFlow token:<ControlFlow_Return return>)
      ]
    )
    (Assignment
      keyword: Assign_Declare
      flags: [-g]
      pairs: [(assign_pair lhs:(LhsName name:VARIABLES_MAP_SH) op:Equal rhs:{(true)} spids:[25])]
      spids: [21]
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [31 36]
        ) (/common.sh)
      }
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [41 46]
        ) (/logger.sh)
      }
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [51 56]
        ) (/variables.sh)
      }
    )
    (C {(.)} 
      {
        (BracedVarSub
          token: <VSub_Name BASH_SOURCE>
          suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
          spids: [61 66]
        ) (/variables.arraylist.sh)
      }
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (type) (Lit_Other ':') (Lit_Other ':') (define)} 
      {(Map)} {(ArrayList)}
    )
    (FuncDef
      name: 'variable::Map::new'
      body: 
        (BraceGroup
          children: [
            (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(Map)} {(DQ (${ VSub_At '@'))})
          ]
          spids: [114]
        )
      spids: [102 113]
    )
    (FuncDef
      name: 'variable::Map::containsKey_c'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::Map::containsKey_c ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 173]
                )
              ]
              spids: [16777215 186]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mapToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [192]
                )
              ]
              spids: [190]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:keyToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 2))}
                  spids: [202]
                )
              ]
              spids: [200]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name mapToken))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:items) op:Equal spids:[228])]
              spids: [224]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name RESULT))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:items)
                              op: Equal
                              rhs: {(ArrayLiteralPart)}
                              spids: [251]
                            )
                          ]
                          spids: [251]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 249]
                )
              ]
              else_action: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:items)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])}
                          spids: [259]
                        )
                      ]
                      spids: [259]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              spids: [257 268]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name keyToken))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:key)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name RESULT))}
                  spids: [287]
                )
              ]
              spids: [285]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:size) op:Equal spids:[298])]
              spids: [296]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:max_index) op:Equal spids:[304])]
              spids: [302]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentKey) op:Equal spids:[309])]
              spids: [307]
            )
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:size)
                      right: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name items>
                                prefix_op: VSub_Pound
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [316 322]
                              )
                            }
                        )
                    )
                  right: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:max_index)
                      right: 
                        (ArithBinary
                          op_id: Arith_Minus
                          left: (ArithVarRef name:size)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                )
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-i]
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[339])]
              spids: [335]
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_LessEqual
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:max_index)
                )
              update: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: 
                    (ArithBinary
                      op_id: Arith_Plus
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                )
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name items>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(${ VSub_Name i)}))
                                spids: [373 380]
                              )
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentKey)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [385]
                        )
                      ]
                      spids: [385]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name currentKey))} 
                                  {(Lit_Other '=') (Lit_Other '=')} {(DQ (${ VSub_Name key))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [16777215 415]
                        )
                      ]
                      spids: [16777215 423]
                    )
                  ]
                  spids: [364 426]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [155]
        )
      spids: [143 154]
    )
    (FuncDef
      name: 'variable::Map::get'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::Map::get ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 476]
                )
              ]
              spids: [16777215 489]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mapToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [495]
                )
              ]
              spids: [493]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:keyToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 2))}
                  spids: [505]
                )
              ]
              spids: [503]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name keyToken))})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:key)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name RESULT))}
                  spids: [528]
                )
              ]
              spids: [526]
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:items) op:Equal spids:[541])]
              spids: [537]
            )
            (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_Name '$mapToken')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name RESULT))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:items)
                              op: Equal
                              rhs: {(ArrayLiteralPart)}
                              spids: [572]
                            )
                          ]
                          spids: [572]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 570]
                )
              ]
              else_action: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:items)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])}
                          spids: [580]
                        )
                      ]
                      spids: [580]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              spids: [578 589]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:size) op:Equal spids:[598])]
              spids: [596]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:max_index) op:Equal spids:[604])]
              spids: [602]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentKey) op:Equal spids:[609])]
              spids: [607]
            )
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:size)
                      right: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name items>
                                prefix_op: VSub_Pound
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [616 622]
                              )
                            }
                        )
                    )
                  right: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:max_index)
                      right: 
                        (ArithBinary
                          op_id: Arith_Minus
                          left: (ArithVarRef name:size)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                )
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_LessEqual
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:max_index)
                )
              update: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: 
                    (ArithBinary
                      op_id: Arith_Plus
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                )
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name items>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(${ VSub_Name i)}))
                                spids: [666 673]
                              )
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentKey)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [678]
                        )
                      ]
                      spids: [678]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name currentKey))} 
                                  {(Lit_Other '=') (Lit_Other '=')} {(DQ (${ VSub_Name key))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name items>
                                        bracket_op: 
                                          (ArrayIndex
                                            expr: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: (ArithWord w:{(${ VSub_Name i)})
                                                right: (ArithWord w:{(Lit_Digits 1)})
                                              )
                                          )
                                        spids: [720 733]
                                      )
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:RESULT)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name items>
                                          bracket_op: 
                                            (ArrayIndex
                                              expr: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{(${ VSub_Name i)})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          spids: [740 753]
                                        )
                                      )
                                    }
                                  spids: [738]
                                )
                              ]
                              spids: [738]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [16777215 708]
                        )
                      ]
                      spids: [16777215 762]
                    )
                  ]
                  spids: [657 765]
                )
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [458]
        )
      spids: [446 457]
    )
    (FuncDef
      name: '_variable::Map::get_p'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C 
                              {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') 
                                (Lit_Other ':') (get)
                              } {(DQ (${ VSub_At '@'))}
                            )
                          ]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(stderr)} 
                      {(DQ ('Map does not contain the specified key [') (${ VSub_Number 2) (']'))}
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 809]
                )
              ]
              spids: [16777215 828]
            )
            (C {(echo)} {(DQ ($ VSub_Name '$RESULT'))})
          ]
          spids: [787]
        )
      spids: [775 786]
    )
    (FuncDef
      name: 'variable::Map::put'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name VARIABLES_DEBUG)}
                              right: {(1)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (C {(stderr)} {(DQ ('variable::Map::put ') (${ VSub_At '@'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 885]
                )
              ]
              spids: [16777215 898]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mapToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [904]
                )
              ]
              spids: [902]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:keyToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 2))}
                  spids: [914]
                )
              ]
              spids: [912]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:valueToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 3))}
                  spids: [924]
                )
              ]
              spids: [922]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_Name '$mapToken')})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:items) op:Equal spids:[946])]
              spids: [942]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name RESULT))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:items)
                              op: Equal
                              rhs: {(ArrayLiteralPart)}
                              spids: [969]
                            )
                          ]
                          spids: [969]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 967]
                )
              ]
              else_action: [
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:items)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])}
                          spids: [977]
                        )
                      ]
                      spids: [977]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              spids: [975 986]
            )
            (C {(log)} 
              {
                (DQ ('MAP: ') 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(_variable) (Lit_Other ':') (Lit_Other ':') (value_p)} 
                            {($ VSub_Name '$mapToken')}
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [993 1000]
                  )
                )
              }
            )
            (C {(log)} 
              {
                (DQ ('Adding new key/value to items [') ($ VSub_Name '$keyToken') (']=[') 
                  ($ VSub_Name '$valueToken') ('] -> ') 
                  (BracedVarSub
                    token: <VSub_Name items>
                    bracket_op: (WholeArray op_id:Lit_At)
                    suffix_op: 
                      (StringUnary
                        op_id: VTest_ColonPlus
                        arg_word: 
                          {
                            (BracedVarSub
                              token: <VSub_Name items>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [1018 1023]
                            )
                          }
                      )
                    spids: [1012 1024]
                  )
                )
              }
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_Name '$keyToken')})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:key)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name RESULT))}
                  spids: [1039]
                )
              ]
              spids: [1037]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_Name '$valueToken')})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:value)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name RESULT))}
                  spids: [1058]
                )
              ]
              spids: [1056]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:size) op:Equal spids:[1069])]
              spids: [1067]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:max_index) op:Equal spids:[1074])]
              spids: [1072]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentKey) op:Equal spids:[1079])]
              spids: [1077]
            )
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:size)
                      right: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name items>
                                prefix_op: VSub_Pound
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [1086 1092]
                              )
                            }
                        )
                    )
                  right: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:max_index)
                      right: 
                        (ArithBinary
                          op_id: Arith_Minus
                          left: (ArithVarRef name:size)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                )
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_LessEqual
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:max_index)
                )
              update: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: 
                    (ArithBinary
                      op_id: Arith_Plus
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                )
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name items>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{(${ VSub_Name i)}))
                              spids: [1135 1142]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentKey)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [1146]
                        )
                      ]
                      spids: [1146]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name currentKey))} 
                                  {(Lit_Other '=') (Lit_Other '=')} {(DQ (${ VSub_Name key))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(items) (Lit_Other '[')})
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_Plus
                                  left: (ArithWord w:{(${ VSub_Name i)})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                            (C {(Lit_Other ']') (Lit_Other '=') (DQ (${ VSub_Name valueToken))})
                            (C {(variable) (Lit_Other ':') (Lit_Other ':') (set)} 
                              {(${ VSub_Name mapToken)} {(ArrayList)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name items>
                                    bracket_op: (WholeArray op_id:Arith_Star)
                                    spids: [1213 1218]
                                  )
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [16777215 1176]
                        )
                      ]
                      spids: [16777215 1227]
                    )
                  ]
                  spids: [1127 1230]
                )
            )
            (C 
              {(items) (Lit_Other '[') 
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name items>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [1241 1247]
                  )
                ) (Lit_Other ']') (Lit_Other '=') (DQ (${ VSub_Name keyToken))
              }
            )
            (C 
              {(items) (Lit_Other '[') 
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name items>
                    prefix_op: VSub_Pound
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [1261 1267]
                  )
                ) (Lit_Other ']') (Lit_Other '=') (DQ (${ VSub_Name valueToken))
              }
            )
            (C {(log)} 
              {
                (DQ ('Added new key/value to items [') ($ VSub_Name '$keyToken') (']=[') 
                  ($ VSub_Name '$valueToken') ('] -> ') 
                  (BracedVarSub
                    token: <VSub_Name items>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [1286 1291]
                  )
                )
              }
            )
            (C {(variable) (Lit_Other ':') (Lit_Other ':') (set)} {(${ VSub_Name mapToken)} 
              {(ArrayList)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name items>
                    bracket_op: (WholeArray op_id:Arith_Star)
                    spids: [1307 1312]
                  )
                )
              }
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [867]
        )
      spids: [855 866]
    )
    (FuncDef
      name: 'variable::Map::print'
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:mapToken)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [1350]
                )
              ]
              spids: [1348]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:indent)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 2>
                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(EmptyPart)})
                          spids: [1362 1365]
                        )
                      )
                    }
                  spids: [1360]
                )
              ]
              spids: [1358]
            )
            (Sentence
              child: 
                (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_Name '$mapToken')})
              terminator: <Op_Semi ';'>
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [(assign_pair lhs:(LhsName name:items) op:Equal spids:[1384])]
              spids: [1380]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name RESULT))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:items)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [1409]
                        )
                      ]
                      spids: [1409]
                    )
                    (C {(echo)} {(DQ (${ VSub_Name indent) ('MAP [') (${ VSub_Name mapToken) ('=()]'))})
                  ]
                  spids: [16777215 1405]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:items)
                      op: Equal
                      rhs: {(ArrayLiteralPart words:[{(${ VSub_Name RESULT)}])}
                      spids: [1433]
                    )
                  ]
                  spids: [1433]
                )
                (C {(echo)} 
                  {
                    (DQ (${ VSub_Name indent) ('MAP [') (${ VSub_Name mapToken) ('=(') 
                      (BracedVarSub
                        token: <VSub_Name items>
                        bracket_op: (WholeArray op_id:Lit_At)
                        spids: [1452 1457]
                      ) (')]')
                    )
                  }
                )
              ]
              spids: [1429 1462]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:size) op:Equal spids:[1471])]
              spids: [1469]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:max_index) op:Equal spids:[1476])]
              spids: [1474]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentKey) op:Equal spids:[1481])]
              spids: [1479]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentValue) op:Equal spids:[1486])]
              spids: [1484]
            )
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:size)
                      right: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name items>
                                prefix_op: VSub_Pound
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [1495 1501]
                              )
                            }
                        )
                    )
                  right: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:max_index)
                      right: 
                        (ArithBinary
                          op_id: Arith_Minus
                          left: (ArithVarRef name:size)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                )
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_LessEqual
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:max_index)
                )
              update: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: 
                    (ArithBinary
                      op_id: Arith_Plus
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                )
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name items>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{(${ VSub_Name i)}))
                              spids: [1544 1551]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentKey)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [1555]
                        )
                      ]
                      spids: [1555]
                    )
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name items>
                              bracket_op: 
                                (ArrayIndex
                                  expr: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:i)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                              spids: [1568 1579]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentValue)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [1583]
                        )
                      ]
                      spids: [1583]
                    )
                    (C {(echo)} 
                      {
                        (DQ (${ VSub_Name indent) ('    [') (${ VSub_Name currentKey) (']=[') 
                          (${ VSub_Name currentValue) (']')
                        )
                      }
                    )
                  ]
                  spids: [1536 1609]
                )
            )
          ]
          spids: [1345]
        )
      spids: [1333 1344]
    )
    (FuncDef
      name: 'variable::Map::debug'
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair
                  lhs: (LhsName name:token)
                  op: Equal
                  rhs: {(DQ (${ VSub_Number 1))}
                  spids: [1631]
                )
              ]
              spids: [1629]
            )
            (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {($ VSub_Name '$mapToken')})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name RESULT))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RESULT)
                          op: Equal
                          rhs: {(DQ ('{}'))}
                          spids: [1670]
                        )
                      ]
                      spids: [1670]
                    )
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 1667]
                )
              ]
              spids: [16777215 1679]
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:items)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name RESULT>
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [1690 1695]
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [1687]
                )
              ]
              spids: [1683]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [
                (assign_pair lhs:(LhsName name:size) op:Equal spids:[1703])
                (assign_pair lhs:(LhsName name:declare) op:Equal spids:[1705])
                (assign_pair lhs:(LhsName name:max_index) op:Equal spids:[1707])
              ]
              spids: [1701]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentKey) op:Equal spids:[1712])]
              spids: [1710]
            )
            (Assignment
              keyword: Assign_Declare
              pairs: [(assign_pair lhs:(LhsName name:currentValue) op:Equal spids:[1717])]
              spids: [1715]
            )
            (Assignment
              keyword: Assign_Declare
              flags: [-a]
              pairs: [
                (assign_pair
                  lhs: (LhsName name:formatted)
                  op: Equal
                  rhs: {(ArrayLiteralPart)}
                  spids: [1725]
                )
              ]
              spids: [1721]
            )
            (DParen
              child: 
                (ArithBinary
                  op_id: Arith_Comma
                  left: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:size)
                      right: 
                        (ArithWord
                          w: 
                            {
                              (BracedVarSub
                                token: <VSub_Name items>
                                prefix_op: VSub_Pound
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [1735 1741]
                              )
                            }
                        )
                    )
                  right: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:max_index)
                      right: 
                        (ArithBinary
                          op_id: Arith_Minus
                          left: (ArithVarRef name:size)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                )
            )
            (ForExpr
              init: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
              cond: 
                (ArithBinary
                  op_id: Arith_LessEqual
                  left: (ArithVarRef name:i)
                  right: (ArithVarRef name:max_index)
                )
              update: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: 
                    (ArithBinary
                      op_id: Arith_Plus
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{(Lit_Digits 2)})
                    )
                )
              body: 
                (DoGroup
                  children: [
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name items>
                              bracket_op: (ArrayIndex expr:(ArithWord w:{(${ VSub_Name i)}))
                              spids: [1784 1791]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentKey)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [1795]
                        )
                      ]
                      spids: [1795]
                    )
                    (Sentence
                      child: 
                        (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name items>
                              bracket_op: 
                                (ArrayIndex
                                  expr: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:i)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                              spids: [1808 1819]
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:currentValue)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name RESULT))}
                          spids: [1823]
                        )
                      ]
                      spids: [1823]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:formatted)
                          op: PlusEqual
                          rhs: 
                            {
                              (ArrayLiteralPart
                                words: [
                                  {(DQ (${ VSub_Name currentKey) ('=') (${ VSub_Name currentValue))}
                                ]
                              )
                            }
                          spids: [1831]
                        )
                      ]
                      spids: [1831]
                    )
                  ]
                  spids: [1776 1845]
                )
            )
            (C 
              {(variable) (Lit_Other ':') (Lit_Other ':') (debug) (Lit_Other ':') (Lit_Other ':') (join)} {(DQ (', '))} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name formatted>
                    bracket_op: (WholeArray op_id:Lit_At)
                    spids: [1862 1867]
                  )
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:RESULT)
                  op: Equal
                  rhs: {(DQ ('{') ($ VSub_Name '$RESULT') ('}'))}
                  spids: [1871]
                )
              ]
              spids: [1871]
            )
          ]
          spids: [1626]
        )
      spids: [1614 1625]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Number '$0')} {(KW_Bang '!') (Lit_Other '=')} 
                  {($ VSub_Name '$BASH_SOURCE')} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(ControlFlow token:<ControlFlow_Return return>)]
          spids: [16777215 1898]
        )
      ]
      spids: [16777215 1903]
    )
    (Sentence
      child: 
        (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (new)})
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:vCode)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1926]
        )
      ]
      spids: [1926]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ ('key one'))})
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:key1) op:Equal rhs:{(${ VSub_Name RESULT)} spids:[1944])]
      spids: [1944]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ ('value one'))})
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:value1)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1962]
        )
      ]
      spids: [1962]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ ('key two'))})
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:key2) op:Equal rhs:{(${ VSub_Name RESULT)} spids:[1980])]
      spids: [1980]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ ('value two'))})
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:value2)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [1998]
        )
      ]
      spids: [1998]
    )
    (Sentence
      child: (C {(variable) (Lit_Other ':') (Lit_Other ':') (new)} {(String)} {(DQ ('no such key'))})
      terminator: <Op_Semi ';'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:keyUnknown)
          op: Equal
          rhs: {(${ VSub_Name RESULT)}
          spids: [2016]
        )
      ]
      spids: [2016]
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (containsKey_c)} {($ VSub_Name '$vCode')} {($ VSub_Name '$keyUnknown')}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(1)} {($ VSub_QMark '$?')} 
      {(DQ ('containsKey false'))}
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (put)} 
      {($ VSub_Name '$vCode')} {($ VSub_Name '$key1')} {($ VSub_Name '$value1')}
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (containsKey_c)} {($ VSub_Name '$vCode')} {($ VSub_Name '$key1')}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {($ VSub_QMark '$?')} 
      {(DQ ('containsKey one true'))}
    )
    (Sentence
      child: 
        (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (get)} 
          {(DQ ($ VSub_Name '$vCode'))} {($ VSub_Name '$key1')}
        )
      terminator: <Op_Semi ';'>
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))} 
      {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('value one'))} {(DQ ($ VSub_Name '$RESULT'))} {(DQ ('get key one'))}
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (put)} 
      {($ VSub_Name '$vCode')} {($ VSub_Name '$key2')} {($ VSub_Name '$value2')}
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (containsKey_c)} {($ VSub_Name '$vCode')} {($ VSub_Name '$key2')}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {($ VSub_QMark '$?')} 
      {(DQ ('containsKey two true'))}
    )
    (Sentence
      child: 
        (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (get)} 
          {($ VSub_Name '$vCode')} {($ VSub_Name '$key2')}
        )
      terminator: <Op_Semi ';'>
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))} 
      {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('value two'))} {(DQ ($ VSub_Name '$RESULT'))} {(DQ ('get key two'))}
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (put)} 
      {($ VSub_Name '$vCode')} {($ VSub_Name '$key1')} {($ VSub_Name '$value2')}
    )
    (C 
      {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (containsKey_c)} {($ VSub_Name '$vCode')} {($ VSub_Name '$key1')}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(0)} {($ VSub_QMark '$?')} 
      {(DQ ('containsKey one replaced true'))}
    )
    (Sentence
      child: 
        (C {(variable) (Lit_Other ':') (Lit_Other ':') (Map) (Lit_Other ':') (Lit_Other ':') (get)} 
          {($ VSub_Name '$vCode')} {($ VSub_Name '$key1')}
        )
      terminator: <Op_Semi ';'>
    )
    (C {(variable) (Lit_Other ':') (Lit_Other ':') (value)} {(DQ (${ VSub_Name RESULT))} 
      {(assert) (Lit_Other ':') (Lit_Other ':') (equals)} {(DQ ('value two'))} {(DQ ($ VSub_Name '$RESULT'))} {(DQ ('get key one replaced'))}
    )
    (C {(assert) (Lit_Other ':') (Lit_Other ':') (report)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(Lit_Other '[')} 
                      {
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_Plus arg_word:{(isset)})
                          spids: [2326 2330]
                        )
                      } {(Lit_Other ']')}
                    )
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=') (Lit_Other '=')} 
                      {(DQ (debug))} {(Lit_Other ']')}
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(variable) (Lit_Other ':') (Lit_Other ':') (printMetadata)})]
          spids: [16777215 2352]
        )
      ]
      spids: [16777215 2361]
    )
  ]
)