(CommandList
  children: [
    (FuncDef
      name: cc_path
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[21])]
              spids: [19]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$MY_CROSS_PATH'))} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CC_PREFIX)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$MY_CC_PREFIX'))}
                          spids: [43]
                        )
                      ]
                      spids: [43]
                    )
                    (AndOr
                      ops: [Op_DAmp Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$CC_PREFIX'))} {(Lit_Other ']')})
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('MY_CROSS_PATH without MY_CC_PREFIX'))}]
                          redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                        )
                        (C {(dienow)})
                      ]
                    )
                    (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$MY_CROSS_PATH') (':'))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 40]
                )
              ]
              spids: [16777215 90]
            )
            (ForEach
              iter_name: i
              iter_words: [
                (BracedWordTree
                  parts: [
                    (DQ ($ VSub_Name '$BUILD'))
                    (/)
                    (BracedAltPart words:[{} {(simple-)}])
                    (cross-compiler-)
                    (DQ ($ VSub_Number '$1') (/bin))
                  ]
                )
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ ($ VSub_Name '$i') (/) ($ VSub_Number '$1') (-cc))} {(Lit_Other ']')}
                        )
                        (ControlFlow token:<ControlFlow_Break break>)
                      ]
                    )
                  ]
                  spids: [120 141]
                )
              spids: [104 16777215]
            )
            (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$i') (':'))})
          ]
          spids: [16]
        )
      spids: [12 15]
    )
    (FuncDef
      name: base_architecture
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ARCH)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [163]
                )
              ]
              spids: [163]
            )
            (C {(source)} {(DQ ($ VSub_Name '$CONFIG_DIR') (/) ($ VSub_Number '$1'))})
          ]
          spids: [160]
        )
      spids: [156 159]
    )
    (FuncDef
      name: load_target
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ARCH_NAME)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [192]
                )
              ]
              spids: [192]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CONFIG_DIR)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$SOURCES') (/targets))}
                  spids: [198]
                )
              ]
              spids: [198]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-f)} 
                      {(DQ ($ VSub_Name '$CONFIG_DIR') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(base_architecture)} {(DQ ($ VSub_Name '$ARCH_NAME'))})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CONFIG_DIR)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [236]
                        )
                      ]
                      spids: [236]
                    )
                  ]
                  spids: [16777215 226]
                )
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-f)} 
                      {(DQ ($ VSub_Name '$CONFIG_DIR') (/) ($ VSub_Number '$1') (/settings))} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(source)} 
                      {(DQ ($ VSub_Name '$CONFIG_DIR') (/) ($ VSub_Number '$1') (/settings))}
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$ARCH'))} {(Lit_Other ']')})
                        (C {(dienow)} {(DQ ('No base_architecture'))})
                      ]
                    )
                  ]
                  spids: [239 255]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ('Supported architectures: '))})
                (C {(ls)} {(DQ ($ VSub_Name '$CONFIG_DIR'))})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
              spids: [287 310]
            )
            (C {(export)} 
              {(Lit_VarLike 'WORK=') (DQ (${ VSub_Name BUILD) (/temp-) ($ VSub_Name '$ARCH_NAME'))}
            )
            (C {(export_if_blank)} 
              {(Lit_VarLike 'CROSS_HOST=') 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(uname)} {(-m)})])
                  left_token: <Left_Backtick '`'>
                  spids: [355 359]
                ) (-walrus-linux)
              }
            )
            (C {(export_if_blank)} {(Lit_VarLike 'CROSS_TARGET=') (${ VSub_Name ARCH) (-unknown-linux)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:STAGE_DIR)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$BUILD') (/) (${ VSub_Name STAGE_NAME) (-) 
                        (${ VSub_Name ARCH_NAME)
                      )
                    }
                  spids: [378]
                )
              ]
              spids: [378]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$KEEP_STAGEDIR'))} {(Lit_Other ']')})
                  ]
                  action: [(C {(blank_tempdir)} {(DQ ($ VSub_Name '$STAGE_DIR'))})]
                  spids: [16777215 406]
                )
              ]
              else_action: [
                (AndOr
                  ops: [Op_DPipe]
                  children: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$STAGE_DIR'))}) (C {(dienow)})]
                )
              ]
              spids: [416 432]
            )
            (SimpleCommand
              words: [{(blank_tempdir)} {(DQ ($ VSub_Name '$WORK'))}]
              more_env: [
                (env_pair
                  name: NO_CLEANUP
                  val: 
                    {
                      (BracedVarSub
                        token: <VSub_Name NO_CLEANUP>
                        suffix_op: 
                          (PatSub
                            pat: {(temp)}
                            replace: {(Lit_Slash /)}
                            do_all: F
                            do_prefix: F
                            do_suffix: F
                          )
                        spids: [436 442]
                      )
                    }
                  spids: [435]
                )
              ]
            )
            (C {(export)} 
              {(Lit_VarLike 'PATH=') 
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(cc_path)} {(DQ ($ VSub_Name '$ARCH'))})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [456 462]
                  ) ($ VSub_Name '$PATH')
                )
              }
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$HOST_ARCH'))} 
                  {(Lit_Other ']')}
                )
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$HOST_ARCH'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ ($ VSub_Name '$ARCH'))} {(Lit_Other ']')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PATH)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(cc_path)} {(DQ ($ VSub_Name '$HOST_ARCH'))})]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [501 507]
                            ) ($ VSub_Name '$PATH')
                          )
                        }
                      spids: [499]
                    )
                  ]
                  spids: [499]
                )
              ]
            )
            (C {(export_if_blank)} {(Lit_VarLike 'CC_PREFIX=') (DQ (${ VSub_Name ARCH) (-))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DO_CROSS)
                  op: Equal
                  rhs: {(DQ ('CROSS_COMPILE=') ($ VSub_Name '$CC_PREFIX'))}
                  spids: [524]
                )
              ]
              spids: [524]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [184]
        )
      spids: [180 183]
    )
    (FuncDef
      name: build_section
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(is_in_list)} {($ VSub_Number '$1')} {($ VSub_Name '$BUILD_STATIC')})
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$ARCH'))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:STATIC_FLAGS)
                      op: Equal
                      rhs: {(DQ (--static))}
                      spids: [587]
                    )
                  ]
                  spids: [587]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OLDCPUS)
                  op: Equal
                  rhs: {($ VSub_Name '$CPUS')}
                  spids: [594]
                )
              ]
              spids: [594]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OLDNOCLEAN)
                  op: Equal
                  rhs: {($ VSub_Name '$NO_CLEANUP')}
                  spids: [598]
                )
              ]
              spids: [598]
            )
            (AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (C {(is_in_list)} {($ VSub_Number '$1')} {($ VSub_Name '$DEBUG_PACKAGE')})
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:CPUS) op:Equal rhs:{(1)} spids:[610])]
                  spids: [610]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:NO_CLEANUP) op:Equal rhs:{(1)} spids:[615])]
                  spids: [615]
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-e)} 
                      {(DQ ($ VSub_Name '$SOURCES') (/sections/) ($ VSub_Number '$1')) (.build)} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(setupfor)} {(DQ ($ VSub_Number '$1'))})
                    (C {(.)} {(DQ ($ VSub_Name '$SOURCES') (/sections/) ($ VSub_Number '$1')) (.build)})
                    (C {(cleanup)})
                  ]
                  spids: [16777215 636]
                )
              ]
              else_action: [
                (C {(announce)} {(DQ ($ VSub_Number '$1'))})
                (C {(.)} {(DQ ($ VSub_Name '$SOURCES')) (/sections/) (DQ ($ VSub_Number '$1')) (.sh)})
              ]
              spids: [659 681]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CPUS)
                  op: Equal
                  rhs: {($ VSub_Name '$OLDCPUS')}
                  spids: [684]
                )
              ]
              spids: [684]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:NO_CLEANUP)
                  op: Equal
                  rhs: {($ VSub_Name '$OLDNOCLEAN')}
                  spids: [688]
                )
              ]
              spids: [688]
            )
          ]
          spids: [550]
        )
      spids: [546 549]
    )
    (FuncDef
      name: getconfig
      body: 
        (BraceGroup
          children: [
            (ForEach
              iter_name: i
              iter_words: [
                (BracedWordTree
                  parts: [
                    (BracedAltPart
                      words: [{($ VSub_Name '$ARCH_NAME')} {($ VSub_Name '$ARCH')}]
                    )
                    (/miniconfig-)
                    ($ VSub_Number '$1')
                  ]
                )
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DAmp Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-f)} 
                          {(DQ ($ VSub_Name '$CONFIG_DIR') (/) ($ VSub_Name '$i'))} {(Lit_Other ']')}
                        )
                        (C {(cat)} {(DQ ($ VSub_Name '$CONFIG_DIR') (/) ($ VSub_Name '$i'))})
                        (ControlFlow token:<ControlFlow_Return return>)
                      ]
                    )
                  ]
                  spids: [720 750]
                )
              spids: [710 16777215]
            )
            (C {(cat)} {(DQ ($ VSub_Name '$SOURCES') (/baseconfig-) ($ VSub_Number '$1'))})
            (C {(eval)} 
              {
                (DQ ('echo ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{') 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(tr)} {(a-z)} {(A-Z)})]
                            negated: F
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [774 786]
                  ) ('_CONFIG}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                )
              }
            )
          ]
          spids: [702]
        )
      spids: [698 701]
    )
    (FuncDef
      name: recent_binary_files
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PREVIOUS)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [805]
                )
              ]
              spids: [805]
            )
            (Pipeline
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (AndOr
                          ops: [Op_DPipe]
                          children: [(C {(cd)} {(DQ ($ VSub_Name '$STAGE_DIR'))}) (C {(dienow)})]
                        )
                        (Pipeline
                          children: [
                            (C {(find)} {(.)} {(-depth)} {(-newer)} 
                              {(DQ ($ VSub_Name '$CURSRC') (/BUILD-TIMESTAMP))}
                            )
                            (C {(sed)} {(-e)} {(SQ <'s/^.//'>)} {(-e)} {(SQ <'s/^.//'>)} {(-e)} 
                              {(SQ <'/^$/d'>)}
                            )
                          ]
                          negated: F
                        )
                      ]
                    )
                  spids: [808 858]
                )
                (WhileUntil
                  keyword: <KW_While while>
                  cond: [(C {(read)} {(i)})]
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TEMP)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name PREVIOUS>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VOp1_DPound
                                          arg_word: {(DQ ($ VSub_Name '$i')) (Lit_Slash /)}
                                        )
                                      spids: [874 881]
                                    )
                                  )
                                }
                              spids: [872]
                            )
                          ]
                          spids: [872]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} 
                                  {
                                    (ArithSubPart
                                      anode: 
                                        (ArithBinary
                                          op_id: Arith_Minus
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name PREVIOUS>
                                                    prefix_op: VSub_Pound
                                                    spids: [891 894]
                                                  )
                                                }
                                            )
                                          right: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name TEMP>
                                                    prefix_op: VSub_Pound
                                                    spids: [896 899]
                                                  )
                                                }
                                            )
                                        )
                                      spids: [890 900]
                                    )
                                  } {(-ne)} 
                                  {
                                    (ArithSubPart
                                      anode: 
                                        (ArithBinary
                                          op_id: Arith_Plus
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name i>
                                                    prefix_op: VSub_Pound
                                                    spids: [905 908]
                                                  )
                                                }
                                            )
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                      spids: [904 911]
                                    )
                                  } {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$i'))})
                                (C {(echo)} {(-ne)} {(SQ <'\\0'>)})
                              ]
                              spids: [16777215 916]
                            )
                          ]
                          spids: [16777215 941]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PREVIOUS)
                              op: Equal
                              rhs: {(DQ ($ VSub_Name '$i'))}
                              spids: [944]
                            )
                          ]
                          spids: [944]
                        )
                      ]
                      spids: [869 950]
                    )
                )
              ]
              negated: F
            )
          ]
          spids: [802]
        )
      spids: [798 801]
    )
    (FuncDef
      name: cleanup
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                (C {(dienow)})
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} 
                      {(DQ ($ VSub_Name '$BINARY_PACKAGE_TARBALLS'))} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARNAME)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$PACKAGE') (-) ($ VSub_Name '$STAGE_NAME') (-) 
                                (${ VSub_Name ARCH_NAME)
                              ) (.tar.gz)
                            }
                          spids: [1005]
                        )
                      ]
                      spids: [1005]
                    )
                    (AndOr
                      ops: [Op_DAmp Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: (CommandList children:[(C {(recent_binary_files)})])
                                left_token: <Left_CommandSub '$('>
                                spids: [1025 1027]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                        (C {(echo)} {(-n)} {(Creating)} {(DQ ($ VSub_Name '$TARNAME'))})
                        (Pipeline
                          children: [
                            (BraceGroup
                              children: [
                                (AndOr
                                  ops: [Op_DPipe]
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(recent_binary_files)})
                                        (C {(xargs)} {(-0)} {(tar)} {(-czvf)} 
                                          {(DQ ($ VSub_Name '$BUILD') (/) (${ VSub_Name TARNAME))} {(-C)} {(DQ ($ VSub_Name '$STAGE_DIR'))}
                                        )
                                      ]
                                      negated: F
                                    )
                                    (C {(dienow)})
                                  ]
                                )
                              ]
                              spids: [1048]
                            )
                            (C {(dotprogress)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  ]
                  spids: [16777215 1002]
                )
              ]
              spids: [16777215 1090]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$NO_CLEANUP'))} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('skip cleanup ') ($ VSub_Name '$PACKAGE') (' ') ($ VSub_At '$@'))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [16777215 1109]
                )
              ]
              spids: [16777215 1125]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(cd)} {(DQ ($ VSub_Name '$WORK'))}) (C {(dienow)})]
            )
            (ForEach
              iter_name: i
              iter_words: [{($ VSub_Name '$WORKDIR_LIST')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(DQ ('cleanup ') ($ VSub_Name '$i'))})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [(C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$i'))}) (C {(dienow)})]
                    )
                  ]
                  spids: [1154 1178]
                )
              spids: [1150 16777215]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WORKDIR_LIST)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [1181]
                )
              ]
              spids: [1181]
            )
          ]
          spids: [963]
        )
      spids: [959 962]
    )
    (FuncDef
      name: blank_workdir
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WORKDIR_LIST)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1') (' ') ($ VSub_Name '$WORKDIR_LIST'))}
                  spids: [1200]
                )
              ]
              spids: [1200]
            )
            (SimpleCommand
              words: [{(blank_tempdir)} {(DQ ($ VSub_Name '$WORK') (/) ($ VSub_Number '$1'))}]
              more_env: [(env_pair name:NO_CLEANUP val:{(EmptyPart)} spids:[1208])]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(cd)} {(DQ ($ VSub_Name '$WORK') (/) ($ VSub_Number '$1'))}) (C {(dienow)})]
            )
          ]
          spids: [1197]
        )
      spids: [1193 1196]
    )
    (FuncDef
      name: setupfor
      body: 
        (BraceGroup
          children: [
            (C {(export)} 
              {(Lit_VarLike 'WRAPPY_LOGPATH=') 
                (DQ ($ VSub_Name '$BUILD') (/logs/cmdlines.) (${ VSub_Name ARCH_NAME) (.) 
                  (${ VSub_Name STAGE_NAME) (.setupfor)
                )
              }
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(extract_package)} {(DQ ($ VSub_Number '$1'))})
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SNAPFROM)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(package_cache)} {(DQ ($ VSub_Number '$1'))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [1282 1288]
                        )
                      )
                    }
                  spids: [1280]
                )
              ]
              spids: [1280]
            )
            (C {(echo)} {(DQ ("Snapshot '") ($ VSub_Name '$PACKAGE') ("'..."))})
            (ForEach
              iter_name: LINKTYPE
              iter_words: [{(l)} {(s)} {(n)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$REUSE_CURSRC'))} 
                              {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(blank_workdir)} {(DQ ($ VSub_Name '$PACKAGE'))})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CURSRC)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: (CommandList children:[(C {(pwd)})])
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1357 1359]
                                        )
                                      )
                                    }
                                  spids: [1355]
                                )
                              ]
                              spids: [1355]
                            )
                          ]
                          spids: [16777215 1345]
                        )
                      ]
                      spids: [16777215 1363]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(cp)} {(-) (${ VSub_Name LINKTYPE) (fR)} 
                          {(DQ ($ VSub_Name '$SNAPFROM') (/)) (Lit_Other '*')} {(DQ ($ VSub_Name '$CURSRC'))}
                        )
                        (ControlFlow token:<ControlFlow_Break break>)
                      ]
                    )
                  ]
                  spids: [1329 1390]
                )
              spids: [1321 16777215]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(cd)} {(DQ ($ VSub_Name '$CURSRC'))}) (C {(dienow)})]
            )
            (C {(export)} 
              {(Lit_VarLike 'WRAPPY_LOGPATH=') 
                (DQ ($ VSub_Name '$BUILD') (/logs/cmdlines.) (${ VSub_Name ARCH_NAME) (.) 
                  (${ VSub_Name STAGE_NAME) (.) ($ VSub_Number '$1')
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} 
                      {(DQ ($ VSub_Name '$BINARY_PACKAGE_TARBALLS'))} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(touch)} {(DQ ($ VSub_Name '$CURSRC') (/BUILD-TIMESTAMP))})
                        (C {(dienow)})
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TIME)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(date)} {(Lit_Other '+') (Lit_Other '%') (s)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1468 1474]
                              )
                            }
                          spids: [1467]
                        )
                      ]
                      spids: [1467]
                    )
                    (WhileUntil
                      keyword: <KW_While while>
                      cond: [(C {(true)})]
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {($ VSub_Name '$TIME')} 
                                  {(KW_Bang '!') (Lit_Other '=')} 
                                  {
                                    (DQ 
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(date)} {(Lit_Other '+') (Lit_Other '%') (s)})
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1493 1499]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                                (ControlFlow
                                  token: <ControlFlow_Break break>
                                )
                              ]
                            )
                            (C {(sleep)} {(.1)})
                          ]
                          spids: [1482 1514]
                        )
                    )
                  ]
                  spids: [16777215 1452]
                )
              ]
              spids: [16777215 1517]
            )
          ]
          spids: [1242]
        )
      spids: [1238 1241]
    )
    (FuncDef
      name: getversion
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                (C {(sed)} {(-e)} 
                  {
                    (SQ 
                      <
's/.*-\\(\\([0-9\\.]\\)*\\([_-]rc\\)*\\(-pre\\)*\\([0-9][a-zA-Z]\\)*\\)*\\(\\.tar\\..z2*\\)$/'
                      >
                    ) (DQ ($ VSub_Number '$2')) (SQ <'\\1/'>)
                  }
                )
              ]
              negated: F
            )
          ]
          spids: [1530]
        )
      spids: [1526 1529]
    )
    (FuncDef
      name: get_download_version
      body: 
        (BraceGroup
          children: [
            (C {(getversion)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(sed)} {(-n)} {(SQ <'s@URL=.*/\\(.[^ ]*\\).*@\\1@p'>)} 
                              {(DQ ($ VSub_Name '$TOP') (/download.sh))}
                            )
                            (C {(grep)} {(${ VSub_Number 1) (-)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [1571 1593]
                )
              }
            )
          ]
          spids: [1566]
        )
      spids: [1562 1565]
    )
    (FuncDef
      name: identify_release
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DIR)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$SRCDIR') (/) ($ VSub_Number '$1'))}
                  spids: [1609]
                )
              ]
              spids: [1609]
            )
            (If
              arms: [
                (if_arm
                  cond: [(C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$DIR'))} {(Lit_Other ']')})]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [(C {(cd)} {(DQ ($ VSub_Name '$DIR'))}) (C {(dienow)})]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ID)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(git)}
                                                    {(log)}
                                                    {(-1)}
                                                    {(--format) (Lit_Other '=') (Lit_Other '%') (H)}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_Great '2>'>
                                                      fd: 2
                                                      arg_word: {(/dev/null)}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1649 1663]
                                        )
                                      )
                                    }
                                  spids: [1647]
                                )
                              ]
                              spids: [1647]
                            )
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$ID'))} 
                                  {(Lit_Other ']')}
                                )
                                (C {(echo)} {(git)} {(DQ ($ VSub_Name '$ID'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ID)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (SimpleCommand
                                                  words: [{(hg)} {(identify)} {(-n)}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_Great '2>'>
                                                      fd: 2
                                                      arg_word: {(/dev/null)}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1697 1706]
                                        )
                                      )
                                    }
                                  spids: [1695]
                                )
                              ]
                              spids: [1695]
                            )
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$ID'))} 
                                  {(Lit_Other ']')}
                                )
                                (C {(echo)} {(hg)} {(DQ ($ VSub_Name '$ID'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ID)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (SimpleCommand
                                                      words: [{(svn)} {(info)}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Redir_Great '2>'>
                                                          fd: 2
                                                          arg_word: {(/dev/null)}
                                                        )
                                                      ]
                                                    )
                                                    (C {(sed)} {(-n)} {(DQ ('s/^Revision: //p'))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1740 1757]
                                        )
                                      )
                                    }
                                  spids: [1738]
                                )
                              ]
                              spids: [1738]
                            )
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$ID'))} 
                                  {(Lit_Other ']')}
                                )
                                (C {(echo)} {(svn)} {(DQ ($ VSub_Name '$ID'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                )
                              ]
                            )
                          ]
                        )
                      spids: [1633 1788]
                    )
                  ]
                  spids: [16777215 1630]
                )
              ]
              spids: [16777215 1791]
            )
            (C {(echo)} {(release)} {(version)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [(C {(get_download_version)} {($ VSub_Number '$1')})]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [1801 1805]
                )
              }
            )
          ]
          spids: [1606]
        )
      spids: [1602 1605]
    )
    (FuncDef
      name: do_manifest
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$SCRIPT_VERS'))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SCRIPT_VERS)
                      op: Equal
                      rhs: 
                        {
                          (DQ ('mercurial rev ') 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Sentence
                                      child: (C {(cd)} {(DQ ($ VSub_Name '$TOP'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                    (SimpleCommand
                                      words: [{(hg)} {(identify)} {(-n)}]
                                      redirects: [
                                        (Redir
                                          op: <Redir_Great '2>'>
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                        )
                                      ]
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [1842 1858]
                            )
                          )
                        }
                      spids: [1839]
                    )
                  ]
                  spids: [1839]
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(EOF)}
                  here_end_span_id: 1962
                  stdin_parts: [
                    ('Built on ')
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [(C {(date)} {(Lit_Other '+') (Lit_Other '%') (F)})]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [1870 1876]
                    )
                    (' from:\n')
                    ('\n')
                    ('  Build script:\n')
                    ('    Aboriginal Linux (http://landley.net/aboriginal) ')
                    ($ VSub_Name '$SCRIPT_VERS')
                    ('\n')
                    ('\n')
                    ('  Base packages:\n')
                    ('    uClibc (http://uclibc.org) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(uClibc)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1886 1890]
                    )
                    ('\n')
                    ('    BusyBox (http://busybox.net) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(busybox)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1893 1897]
                    )
                    ('\n')
                    ('    Linux (http://kernel.org/pub/linux/kernel) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(linux)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1900 1904]
                    )
                    ('\n')
                    ('    toybox (http://landley.net/toybox) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(toybox)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1907 1911]
                    )
                    ('\n')
                    ('\n')
                    ('  Toolchain packages:\n')
                    ('    Binutils (http://www.gnu.org/software/binutils/) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(binutils)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1916 1920]
                    )
                    ('\n')
                    ('    GCC (http://gcc.gnu.org) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(gcc-core)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1923 1927]
                    )
                    ('\n')
                    ('    gmake (http://www.gnu.org/software/make) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(make)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1930 1934]
                    )
                    ('\n')
                    ('    bash (ftp://ftp.gnu.org/gnu/bash) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(bash)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1937 1941]
                    )
                    ('\n')
                    ('\n')
                    ('  Optional packages:\n')
                    ('    distcc (http://distcc.samba.org) ')
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(identify_release)} {(distcc)})])
                      left_token: <Left_CommandSub '$('>
                      spids: [1946 1950]
                    )
                    ('\n')
                    ('    uClibc++ (http://cxx.uclibc.org) ')
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (C {(identify_release)} {(uClibc) (Lit_Other '+') (Lit_Other '+')})
                          ]
                        )
                      left_token: <Left_CommandSub '$('>
                      spids: [1953 1959]
                    )
                    ('\n')
                  ]
                )
              ]
            )
          ]
          spids: [1818]
        )
      spids: [1814 1817]
    )
    (FuncDef
      name: link_arch_name
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ARCH'))} {(Lit_Other '=') (Lit_Other '=')} 
                  {(DQ ($ VSub_Name '$ARCH_NAME'))} {(Lit_Other ']')}
                )
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
            )
            (AndOr
              ops: [Op_DAmp Op_DPipe]
              children: [
                (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$BUILD') (/) ($ VSub_Number '$2'))})
                (C {(ln)} {(-s)} {(DQ ($ VSub_Number '$1'))} 
                  {(DQ ($ VSub_Name '$BUILD') (/) ($ VSub_Number '$2'))}
                )
                (C {(dienow)})
              ]
            )
          ]
          spids: [1974]
        )
      spids: [1970 1973]
    )
    (FuncDef
      name: check_for_base_arch
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ARCH'))} {(KW_Bang '!') (Lit_Other '=')} 
                      {(DQ ($ VSub_Name '$ARCH_NAME'))} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(link_arch_name)} 
                      (BracedWordTree
                        parts: [
                          ($ VSub_Name '$STAGE_NAME')
                          (-)
                          (BracedAltPart
                            words: [{(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$ARCH_NAME'))}]
                          )
                        ]
                      )
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-e)} 
                          {($ VSub_Name '$STAGE_NAME') (-) (DQ ($ VSub_Name '$ARCH')) (.tar.gz)} {(Lit_Other ']')}
                        )
                        (C {(link_arch_name)} 
                          (BracedWordTree
                            parts: [
                              ($ VSub_Name '$STAGE_NAME')
                              (-)
                              (BracedAltPart
                                words: [{(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$ARCH_NAME'))}]
                              )
                              (.tar.gz)
                            ]
                          )
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(-e)} 
                              {
                                (DQ ($ VSub_Name '$BUILD') (/) ($ VSub_Name '$STAGE_NAME') (-) 
                                  ($ VSub_Name '$ARCH')
                                )
                              } {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(announce)} 
                              {
                                (DQ ('Using existing ') (${ VSub_Name STAGE_NAME) (-) 
                                  ($ VSub_Name '$ARCH')
                                )
                              }
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 2143]
                        )
                      ]
                      else_action: [
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(mkdir)} {(-p)} 
                              {
                                (DQ ($ VSub_Name '$BUILD') (/) ($ VSub_Name '$STAGE_NAME') (-) 
                                  ($ VSub_Name '$ARCH')
                                )
                              }
                            )
                            (C {(dienow)})
                          ]
                        )
                      ]
                      spids: [2164 2184]
                    )
                  ]
                  spids: [16777215 2075]
                )
              ]
              spids: [16777215 2187]
            )
          ]
          spids: [2045]
        )
      spids: [2041 2044]
    )
    (FuncDef
      name: create_stage_tarball
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rmdir)} {(DQ ($ VSub_Name '$WORK'))}]
              redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [(C {(cd)} {(DQ ($ VSub_Name '$BUILD'))}) (C {(dienow)})]
            )
            (C {(link_arch_name)} 
              (BracedWordTree
                parts: [
                  ($ VSub_Name '$STAGE_NAME')
                  (-)
                  (BracedAltPart
                    words: [{($ VSub_Name '$ARCH')} {($ VSub_Name '$ARCH_NAME')}]
                  )
                ]
              )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$NO_STAGE_TARBALLS'))} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (C {(echo)} {(-n)} {(creating)} 
                      {(DQ ($ VSub_Name '$STAGE_NAME') (-) (${ VSub_Name ARCH)) (.tar.gz)}
                    )
                    (Pipeline
                      children: [
                        (BraceGroup
                          children: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(tar)} {(czvf)} 
                                  {(DQ ($ VSub_Name '$STAGE_NAME') (-) (${ VSub_Name ARCH)) 
                                    (.tar.gz)
                                  } {(DQ ($ VSub_Name '$STAGE_NAME') (-) (${ VSub_Name ARCH))}
                                )
                                (C {(dienow)})
                              ]
                            )
                          ]
                          spids: [2276]
                        )
                        (C {(dotprogress)})
                      ]
                      negated: F
                    )
                    (C {(link_arch_name)} 
                      (BracedWordTree
                        parts: [
                          ($ VSub_Name '$STAGE_NAME')
                          (-)
                          (BracedAltPart
                            words: [{($ VSub_Name '$ARCH')} {($ VSub_Name '$ARCH_NAME')}]
                          )
                          (.tar.gz)
                        ]
                      )
                    )
                  ]
                  spids: [16777215 2256]
                )
              ]
              spids: [16777215 2324]
            )
          ]
          spids: [2196]
        )
      spids: [2192 2195]
    )
    (FuncDef
      name: hosttools_path
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:X) op:Equal spids:[2345])]
              spids: [2343]
            )
            (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$HOSTTOOLS'))})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:X) op:Equal rhs:{(1)} spids:[2358])]
              spids: [2358]
            )
            (WhileUntil
              keyword: <KW_While while>
              cond: [
                (C {(Lit_Other '[')} {(-e)} 
                  {(DQ ($ VSub_Name '$HOSTTOOLS') (/fallback-) ($ VSub_Name '$X'))} {(Lit_Other ']')}
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(echo)} {(-n)} 
                      {(DQ (':') ($ VSub_Name '$HOSTTOOLS') (/fallback-) ($ VSub_Name '$X'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:X)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Plus
                                    left: (ArithWord w:{($ VSub_Name '$X')})
                                    right: (ArithWord w:{(Lit_Digits 1)})
                                  )
                                spids: [2393 2397]
                              )
                            }
                          spids: [2392]
                        )
                      ]
                      spids: [2392]
                    )
                  ]
                  spids: [2377 2400]
                )
            )
          ]
          spids: [2340]
        )
      spids: [2336 2339]
    )
    (FuncDef
      name: image_filesystem
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('make ') ($ VSub_Name '$SYSIMAGE_TYPE') (' ') ($ VSub_Number '$2'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SYSIMAGE_TYPE'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (cpio))} {(Lit_Other ']')}
                        )
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SYSIMAGE_TYPE'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (rootfs))} {(Lit_Other ']')}
                        )
                      ]
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DAmp Op_DPipe]
                      children: [
                        (C {(extract_package)} {(linux)})
                        (C {($ VSub_Name '$CC')} 
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(package_cache)} {($ VSub_Name '$PACKAGE')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2484 2488]
                              ) (/usr/gen_init_cpio.c)
                            )
                          } {(-o)} {(DQ ($ VSub_Name '$WORK')) (/my_gen_init_cpio)}
                        )
                        (C {(dienow)})
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (Pipeline
                          children: [
                            (C {(DQ ($ VSub_Name '$WORK')) (/my_gen_init_cpio)} 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (AndOr
                                          ops: [Op_DPipe]
                                          children: [
                                            (C 
                                              {(DQ ($ VSub_Name '$SOURCES')) 
                                                (/toys/gen_initramfs_list.sh)
                                              } {(DQ ($ VSub_Number '$1'))}
                                            )
                                            (C {(dienow)})
                                          ]
                                        )
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                              {(DQ ($ VSub_Number '$1')) (/init)} {(Lit_Other ']')}
                                            )
                                            (C {(echo)} {(DQ ('slink /init /sbin/init.sh 755 0 0'))})
                                          ]
                                        )
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                                              {(DQ ($ VSub_Number '$1')) (/dev)} {(Lit_Other ']')}
                                            )
                                            (C {(echo)} {(DQ ('dir /dev 755 0 0'))})
                                          ]
                                        )
                                        (C {(echo)} {(DQ ('nod /dev/console 660 0 0 c 5 1'))})
                                      ]
                                    )
                                  left_token: <Left_ProcSubIn '<('>
                                  spids: [2510 2579]
                                )
                              }
                            )
                            (SimpleCommand
                              words: [{(gzip)} {(-9)}]
                              redirects: [
                                (Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Number '$2') (.cpio.gz))}
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (C {(dienow)})
                      ]
                    )
                    (C {(echo)} {(Initramfs)} {(generated.)})
                  ]
                  spids: [16777215 2467]
                )
                (if_arm
                  cond: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SYSIMAGE_TYPE'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (ext2))} {(Lit_Other ']')}
                        )
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SYSIMAGE_TYPE'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (ext3))} {(Lit_Other ']')}
                        )
                      ]
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$SYSIMAGE_HDA_MEGS'))} 
                          {(Lit_Other ']')}
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SYSIMAGE_HDA_MEGS)
                              op: Equal
                              rhs: {(64)}
                              spids: [2666]
                            )
                          ]
                          spids: [2666]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:BLOCKS)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Star
                                    left: (ArithWord w:{(Lit_Digits 1024)})
                                    right: 
                                      (ArithBinary
                                        op_id: Arith_Slash
                                        left: 
                                          (ArithBinary
                                            op_id: Arith_Star
                                            left: 
                                              (ArithWord
                                                w: 
                                                  {
                                                    (CommandSubPart
                                                      command_list: 
                                                        (CommandList
                                                          children: [
                                                            (Pipeline
                                                              children: [
                                                                (C {(du)} {(-m)} {(-s)} 
                                                                  {(DQ ($ VSub_Number '$1'))}
                                                                )
                                                                (C {(awk)} {(SQ <'{print $1}'>)})
                                                              ]
                                                              negated: F
                                                            )
                                                          ]
                                                        )
                                                      left_token: <Left_CommandSub '$('>
                                                      spids: [2686 2704]
                                                    )
                                                  }
                                              )
                                            right: (ArithWord w:{(Lit_Digits 12)})
                                          )
                                        right: (ArithWord w:{(Lit_Digits 10)})
                                      )
                                  )
                                spids: [2681 2711]
                              )
                            }
                          spids: [2680]
                        )
                      ]
                      spids: [2680]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {($ VSub_Name '$BLOCKS')} {(-lt)} {(4096)} {(Lit_Other ']')})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:BLOCKS)
                              op: Equal
                              rhs: {(4096)}
                              spids: [2726]
                            )
                          ]
                          spids: [2726]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FILE)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$2') (.) ($ VSub_Name '$SYSIMAGE_TYPE'))}
                          spids: [2730]
                        )
                      ]
                      spids: [2730]
                    )
                    (AndOr
                      ops: [Op_DAmp Op_DAmp Op_DAmp Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('/dev d 755 0 0 - - - - -'))}]
                          redirects: [
                            (Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$WORK') (/devs))}
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [{(echo)} {(DQ ('/dev/console c 640 0 0 5 1 0 0 -'))}]
                          redirects: [
                            (Redir
                              op: <Redir_DGreat '>>'>
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$WORK') (/devs))}
                            )
                          ]
                        )
                        (C {(genext2fs)} {(-z)} {(-D)} {(DQ ($ VSub_Name '$WORK') (/devs))} {(-d)} 
                          {(DQ ($ VSub_Number '$1'))} {(-b)} {($ VSub_Name '$BLOCKS')} {(-i)} {(1024)} {(DQ ($ VSub_Name '$FILE'))}
                        )
                        (C {(rm)} {(DQ ($ VSub_Name '$WORK') (/devs))})
                        (C {(dienow)})
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} 
                                  {(DQ ($ VSub_Name '$SYSIMAGE_HDA_MEGS'))} {(Lit_Other ']')}
                                )
                                (C {(Lit_Other '[')} 
                                  {
                                    (ArithSubPart
                                      anode: 
                                        (ArithBinary
                                          op_id: Arith_Slash
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (CommandSubPart
                                                    command_list: 
                                                      (CommandList
                                                        children: [
                                                          (C {(stat)} {(-c)} {(Lit_Other '%') (s)} 
                                                            {(DQ ($ VSub_Name '$FILE'))}
                                                          )
                                                        ]
                                                      )
                                                    left_token: <Left_Backtick '`'>
                                                    spids: [2849 2860]
                                                  )
                                                }
                                            )
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Star
                                              left: (ArithWord w:{(Lit_Digits 1024)})
                                              right: (ArithWord w:{(Lit_Digits 1024)})
                                            )
                                        )
                                      spids: [2848 2871]
                                    )
                                  } {(-lt)} {(DQ ($ VSub_Name '$SYSIMAGE_HDA_MEGS'))} {(Lit_Other ']')}
                                )
                              ]
                            )
                          ]
                          action: [
                            (C {(echo)} {(resizing)} {(image)} {(to)} {($ VSub_Name '$SYSIMAGE_HDA_MEGS')})
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(resize2fs)} {(DQ ($ VSub_Name '$FILE'))} 
                                  {(${ VSub_Name SYSIMAGE_HDA_MEGS) (M)}
                                )
                                (C {(dienow)})
                              ]
                            )
                          ]
                          spids: [16777215 2882]
                        )
                      ]
                      spids: [16777215 2912]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(tune2fs)} {(-c)} {(0)} {(-i)} {(0)} 
                          {
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SYS_IMAGE_TYPE'))} 
                                          {(Lit_Other '=')} {(DQ (ext3))} {(Lit_Other ']')}
                                        )
                                        (C {(echo)} {(-j)})
                                      ]
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [2926 2946]
                            )
                          } {(DQ ($ VSub_Name '$FILE'))}
                        )
                        (C {(dienow)})
                      ]
                    )
                    (C {(echo)} {($ VSub_Name '$SYSIMAGE_TYPE')} {(generated)})
                  ]
                  spids: [2607 2642]
                )
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SYSIMAGE_TYPE'))} 
                      {(Lit_Other '=') (Lit_Other '=')} {(DQ (squashfs))} {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(mksquashfs)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2') (.sqf))} 
                          {(-noappend)} {(-all-root)} 
                          {
                            (BracedVarSub
                              token: <VSub_Name FORK>
                              suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(-no-progress)})
                              spids: [3001 3005]
                            )
                          }
                        )
                        (C {(dienow)})
                      ]
                    )
                  ]
                  spids: [2965 2983]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ('Unknown image type ') ($ VSub_Name '$SYSIMAGE_TYPE'))}]
                  redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                )
                (C {(dienow)})
              ]
              spids: [3012 3029]
            )
          ]
          spids: [2413]
        )
      spids: [2409 2412]
    )
  ]
)