(CommandList
  children: [
    (FuncDef
      name: smallyes
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:YES)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(y)})
                          spids: [13 17]
                        )
                      )
                    }
                  spids: [11]
                )
              ]
              spids: [11]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$YES'))}]
                      redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[29])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
                  spids: [34 40]
                )
            )
          ]
          spids: [8]
        )
      spids: [4 7]
    )
    (FuncDef
      name: in_path
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OLD_IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$IFS'))}
                  spids: [55]
                )
              ]
              spids: [53]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(DQ (':'))} spids:[61])]
              spids: [61]
            )
            (ForEach
              iter_name: dir
              iter_words: [{($ VSub_Name '$PATH')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-x)} 
                                  {(DQ ($ VSub_Name '$dir') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:IFS)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OLD_IFS'))}
                                  spids: [97]
                                )
                              ]
                              spids: [97]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [16777215 94]
                        )
                      ]
                      spids: [16777215 108]
                    )
                  ]
                  spids: [76 111]
                )
              spids: [72 74]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$OLD_IFS'))}
                  spids: [114]
                )
              ]
              spids: [114]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [50]
        )
      spids: [45 49]
    )
    (FuncDef
      name: error
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:err)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [145]
                )
              ]
              spids: [143]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [153]
                )
              ]
              spids: [151]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [161]
                )
              ]
              spids: [159]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} {(DQ ('E: ') ($ VSub_Name '$name'))})
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('EA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [210 220]
                                )
                              spids: [204 208]
                            )
                            (C {(echo)} {(DQ ('EF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(4)} spids:[231])]
                      spids: [190 229]
                    )
                  ]
                  spids: [16777215 187]
                )
              ]
              else_action: [
                (Subshell
                  child: 
                    (C {(printf)} {(DQ ('E: ') ($ VSub_Name '$fmt') (Lit_Other '\\') (n))} 
                      {(DQ ($ VSub_At '$@'))}
                    )
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(4)} spids:[253])]
                  spids: [238 251]
                )
              ]
              spids: [235 257]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$err')})
          ]
          spids: [136]
        )
      spids: [131 135]
    )
    (FuncDef
      name: warning
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [281]
                )
              ]
              spids: [279]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [289]
                )
              ]
              spids: [287]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} {(DQ ('W: ') ($ VSub_Name '$name'))})
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('WA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [335 345]
                                )
                              spids: [329 333]
                            )
                            (C {(echo)} {(DQ ('WF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(4)} spids:[356])]
                      spids: [315 354]
                    )
                  ]
                  spids: [16777215 312]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(printf)}
                    {(DQ ('W: ') ($ VSub_Name '$fmt') (Lit_Other '\\') (n))}
                    {(DQ ($ VSub_At '$@'))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(4)} spids:[376])]
                )
              ]
              spids: [360 380]
            )
          ]
          spids: [272]
        )
      spids: [267 271]
    )
    (FuncDef
      name: info
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [399]
                )
              ]
              spids: [397]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [407]
                )
              ]
              spids: [405]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} {(DQ ('I: ') ($ VSub_Name '$name'))})
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('IA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [453 463]
                                )
                              spids: [447 451]
                            )
                            (C {(echo)} {(DQ ('IF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(4)} spids:[474])]
                      spids: [433 472]
                    )
                  ]
                  spids: [16777215 430]
                )
              ]
              else_action: [
                (SimpleCommand
                  words: [
                    {(printf)}
                    {(DQ ('I: ') ($ VSub_Name '$fmt') (Lit_Other '\\') (n))}
                    {(DQ ($ VSub_At '$@'))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(4)} spids:[494])]
                )
              ]
              spids: [478 498]
            )
          ]
          spids: [390]
        )
      spids: [385 389]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_NOW) op:Equal rhs:{(0)} spids:[503])]
      spids: [503]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_END) op:Equal rhs:{(0)} spids:[506])]
      spids: [506]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_NEXT) op:Equal rhs:{(DQ )} spids:[509])]
      spids: [509]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PROGRESS_WHAT) op:Equal rhs:{(DQ )} spids:[513])]
      spids: [513]
    )
    (FuncDef
      name: progress_next
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROGRESS_NEXT)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [526]
                )
              ]
              spids: [526]
            )
          ]
          spids: [523]
        )
      spids: [518 522]
    )
    (FuncDef
      name: wgetprogress
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$VERBOSE'))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:QSWITCH)
                      op: Equal
                      rhs: {(DQ (-q))}
                      spids: [554]
                    )
                  ]
                  spids: [554]
                )
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[562])]
              spids: [560]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PROGRESS_NEXT'))} {(Lit_Other ']')})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (SimpleCommand
                          words: [{(wget)} {(DQ ($ VSub_At '$@'))}]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [596]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [599]
                            )
                          ]
                        )
                        (SimpleCommand
                          words: [
                            {($ VSub_Name '$PKGDETAILS')}
                            {(DQ ('WGET%'))}
                            {($ VSub_Name '$PROGRESS_NOW')}
                            {($ VSub_Name '$PROGRESS_NEXT')}
                            {($ VSub_Name '$PROGRESS_END')}
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 16777215
                              arg_word: {(3)}
                              spids: [616]
                            )
                          ]
                        )
                      ]
                      negated: F
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ret)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [620]
                        )
                      ]
                      spids: [620]
                    )
                  ]
                  spids: [16777215 587]
                )
              ]
              else_action: [
                (C {(wget)} {($ VSub_Name '$QSWITCH')} {(DQ ($ VSub_At '$@'))})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [637]
                    )
                  ]
                  spids: [637]
                )
              ]
              spids: [624 641]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name '$ret')})
          ]
          spids: [539]
        )
      spids: [534 538]
    )
    (FuncDef
      name: progress
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:now)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [665]
                )
              ]
              spids: [663]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:end)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [673]
                )
              ]
              spids: [671]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [681]
                )
              ]
              spids: [679]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:fmt)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [689]
                )
              ]
              spids: [687]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROGRESS_NOW)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$now'))}
                          spids: [721]
                        )
                      ]
                      spids: [721]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROGRESS_END)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$end'))}
                          spids: [727]
                        )
                      ]
                      spids: [727]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PROGRESS_NEXT)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [733]
                        )
                      ]
                      spids: [733]
                    )
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (C {(echo)} 
                              {
                                (DQ ('P: ') ($ VSub_Name '$now') (' ') ($ VSub_Name '$end') (' ') 
                                  ($ VSub_Name '$name')
                                )
                              }
                            )
                            (ForEach
                              iter_name: x
                              iter_words: [{(DQ ($ VSub_At '$@'))}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Sentence
                                      child: (C {(echo)} {(DQ ('PA: ') ($ VSub_Name '$x'))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [762 772]
                                )
                              spids: [756 760]
                            )
                            (C {(echo)} {(DQ ('PF: ') ($ VSub_Name '$fmt'))})
                          ]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(3)} spids:[783])]
                      spids: [738 781]
                    )
                  ]
                  spids: [16777215 718]
                )
              ]
              spids: [16777215 787]
            )
          ]
          spids: [656]
        )
      spids: [651 655]
    )
    (FuncDef
      name: dpkg_progress
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:now)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [806]
                )
              ]
              spids: [804]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:end)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [814]
                )
              ]
              spids: [812]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [822]
                )
              ]
              spids: [820]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:desc)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [830]
                )
              ]
              spids: [828]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:action)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$5'))}
                  spids: [838]
                )
              ]
              spids: [836]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:expect) op:Equal rhs:{(EmptyPart)} spids:[846])]
              spids: [844]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$action'))} {(Lit_Other '=')} 
                          {(UNPACKING)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expect)
                          op: Equal
                          rhs: {(half-installed)}
                          spids: [868]
                        )
                      ]
                      spids: [868]
                    )
                  ]
                  spids: [16777215 865]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$action'))} {(Lit_Other '=')} 
                          {(CONFIGURING)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:expect)
                          op: Equal
                          rhs: {(half-configured)}
                          spids: [890]
                        )
                      ]
                      spids: [890]
                    )
                  ]
                  spids: [872 887]
                )
              ]
              spids: [16777215 894]
            )
            (FuncDef
              name: dp
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:now)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$now')})
                                      right: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VTest_ColonHyphen
                                                    arg_word: {(1)}
                                                  )
                                                spids: [913 917]
                                              )
                                            }
                                        )
                                    )
                                  spids: [908 919]
                                )
                              )
                            }
                          spids: [906]
                        )
                      ]
                      spids: [906]
                    )
                  ]
                  spids: [903]
                )
              spids: [898 902]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:exitcode) op:Equal rhs:{(0)} spids:[927])]
              spids: [927]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(read)} {(status)} {(pkg)} {(qstate)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$status'))} {(Lit_Other '=')} 
                                  {(DQ (EXITCODE))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:exitcode)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$pkg'))}
                                  spids: [965]
                                )
                              ]
                              spids: [965]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [16777215 962]
                        )
                      ]
                      spids: [16777215 974]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$qstate'))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$expect'))} {(Lit_Other ']')}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                    )
                    (Case
                      to_match: {($ VSub_Name '$qstate')}
                      arms: [
                        (case_arm
                          pat_list: [{(half-installed)}]
                          action: [
                            (Sentence
                              child: (C {(dp)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(progress)} {(DQ ($ VSub_Name '$now'))} {(DQ ($ VSub_Name '$end'))} 
                              {(DQ ($ VSub_Name '$name'))} {(DQ ($ VSub_Name '$desc'))}
                            )
                            (C {(info)} {(DQ ($ VSub_Name '$action'))} {(DQ ('Unpacking %s...'))} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name pkg>
                                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':')})
                                    spids: [1040 1044]
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(unpacked)}
                                  spids: [1048]
                                )
                              ]
                              spids: [1048]
                            )
                          ]
                          spids: [1003 1004 1052 16777215]
                        )
                        (case_arm
                          pat_list: [{(unpacked)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(half-installed)}
                                  spids: [1059]
                                )
                              ]
                              spids: [1059]
                            )
                          ]
                          spids: [1055 1056 1063 16777215]
                        )
                        (case_arm
                          pat_list: [{(half-configured)}]
                          action: [
                            (Sentence
                              child: (C {(dp)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(progress)} {(DQ ($ VSub_Name '$now'))} {(DQ ($ VSub_Name '$end'))} 
                              {(DQ ($ VSub_Name '$name'))} {(DQ ($ VSub_Name '$desc'))}
                            )
                            (C {(info)} {(DQ ($ VSub_Name '$action'))} {(DQ ('Configuring %s...'))} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name pkg>
                                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(':')})
                                    spids: [1103 1107]
                                  )
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(installed)}
                                  spids: [1111]
                                )
                              ]
                              spids: [1111]
                            )
                          ]
                          spids: [1066 1067 1115 16777215]
                        )
                        (case_arm
                          pat_list: [{(installed)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:expect)
                                  op: Equal
                                  rhs: {(half-configured)}
                                  spids: [1122]
                                )
                              ]
                              spids: [1122]
                            )
                          ]
                          spids: [1118 1119 1126 16777215]
                        )
                      ]
                      spids: [996 1000 1129]
                    )
                  ]
                  spids: [942 1132]
                )
            )
            (ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_Name '$exitcode')}
            )
          ]
          spids: [797]
        )
      spids: [792 796]
    )
    (FuncDef
      name: default_mirror
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DEF_MIRROR)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [1154]
                )
              ]
              spids: [1154]
            )
          ]
          spids: [1151]
        )
      spids: [1146 1150]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FINDDEBS_NEEDS_INDICES)
          op: Equal
          rhs: {(false)}
          spids: [1162]
        )
      ]
      spids: [1162]
    )
    (FuncDef
      name: finddebs_style
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm pat_list:[{(hardcoded)}] spids:[1182 1183 1186 16777215])
                (case_arm
                  pat_list: [{(from-indices)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FINDDEBS_NEEDS_INDICES)
                          op: Equal
                          rhs: {(true)}
                          spids: [1193]
                        )
                      ]
                      spids: [1193]
                    )
                  ]
                  spids: [1189 1190 1197 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(BADFINDDEBS)} {(DQ ('unknown finddebs style'))})]
                  spids: [1200 1201 1215 16777215]
                )
              ]
              spids: [1173 1179 1218]
            )
          ]
          spids: [1170]
        )
      spids: [1165 1169]
    )
    (FuncDef
      name: mk_download_dirs
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_Name '$DLDEST')} {(Lit_Other '=')} {(DQ (apt_dest))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(mkdir)} {(-p)} 
                      {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$APTSTATE') (/lists/partial))}
                    )
                    (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/var/cache/apt/archives/partial))})
                  ]
                  spids: [16777215 1246]
                )
              ]
              spids: [16777215 1271]
            )
          ]
          spids: [1228]
        )
      spids: [1223 1227]
    )
    (FuncDef
      name: download_style
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(apt)}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} 
                                  {(DQ (var-state))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:APTSTATE)
                                  op: Equal
                                  rhs: {(var/state/apt)}
                                  spids: [1317]
                                )
                              ]
                              spids: [1317]
                            )
                          ]
                          spids: [16777215 1314]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:APTSTATE)
                              op: Equal
                              rhs: {(var/lib/apt)}
                              spids: [1324]
                            )
                          ]
                          spids: [1324]
                        )
                      ]
                      spids: [1321 1328]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DLDEST)
                          op: Equal
                          rhs: {(apt_dest)}
                          spids: [1331]
                        )
                      ]
                      spids: [1331]
                    )
                    (C {(export)} {(APTSTATE)} {(DLDEST)} {(DEBFOR)})
                  ]
                  spids: [1293 1294 1344 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(BADDLOAD)} {(DQ ('unknown download style'))})]
                  spids: [1347 1348 1362 16777215]
                )
              ]
              spids: [1284 1290 1365]
            )
          ]
          spids: [1281]
        )
      spids: [1276 1280]
    )
    (FuncDef
      name: keyring
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$KEYRING'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:KEYRING)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$1'))}
                                  spids: [1410]
                                )
                              ]
                              spids: [1410]
                            )
                          ]
                          spids: [16777215 1407]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$DISABLE_KEYRING'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp Op_DAmp]
                                          children: [
                                            (C {(Lit_Other '[')} {(-n)} 
                                              {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))} {(Lit_Other ']')}
                                            )
                                            (C {(Lit_Other '[')} {(-z)} 
                                              {(DQ ($ VSub_Name '$USER_MIRROR'))} {(Lit_Other ']')}
                                            )
                                            (C {(Lit_Other '[')} {(-z)} 
                                              {(DQ ($ VSub_Name '$FORCE_KEYRING'))} {(Lit_Other ']')}
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(info)} {(KEYRING)} 
                                      {
                                        (DQ 
                                          (
'Keyring file not available at %s; switching to https mirror %s'
                                          )
                                        )
                                      } {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:USER_MIRROR)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))}
                                          spids: [1489]
                                        )
                                      ]
                                      spids: [1489]
                                    )
                                  ]
                                  spids: [16777215 1469]
                                )
                              ]
                              else_action: [
                                (C {(warning)} {(KEYRING)} 
                                  {
                                    (DQ 
                                      (
'Cannot check Release signature; keyring file not available %s'
                                      )
                                    )
                                  } {(DQ ($ VSub_Number '$1'))}
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-n)} 
                                              {(DQ ($ VSub_Name '$FORCE_KEYRING'))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(error)} {(1)} {(KEYRING)} 
                                          {
                                            (DQ 
                                              (
'Keyring-based check was requested; aborting accordingly'
                                              )
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 1524]
                                    )
                                  ]
                                  spids: [16777215 1538]
                                )
                              ]
                              spids: [1495 1541]
                            )
                          ]
                          spids: [1416 1429]
                        )
                      ]
                      spids: [16777215 1544]
                    )
                  ]
                  spids: [16777215 1391]
                )
              ]
              spids: [16777215 1547]
            )
          ]
          spids: [1375]
        )
      spids: [1370 1374]
    )
    (FuncDef
      name: doing_variant
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                          {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 1581]
                )
              ]
              spids: [16777215 1588]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other '=')} {(DQ )} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 1623]
                )
              ]
              spids: [16777215 1630]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1561]
        )
      spids: [1556 1560]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SUPPORTED_VARIANTS)
          op: Equal
          rhs: {(DQ (-))}
          spids: [1640]
        )
      ]
      spids: [1640]
    )
    (FuncDef
      name: variants
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SUPPORTED_VARIANTS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [1653]
                )
              ]
              spids: [1653]
            )
            (ForEach
              iter_name: v
              iter_words: [{($ VSub_Star '$*')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(doing_variant)} {(DQ ($ VSub_Name '$v'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 1680]
                        )
                      ]
                      spids: [16777215 1687]
                    )
                  ]
                  spids: [1668 1690]
                )
              spids: [1664 1666]
            )
            (C {(error)} {(1)} {(UNSUPPVARIANT)} {(DQ ('unsupported variant'))})
          ]
          spids: [1650]
        )
      spids: [1645 1649]
    )
    (FuncDef
      name: mirror_style
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(release)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_INDICES)
                          op: Equal
                          rhs: {(download_release_indices)}
                          spids: [1731]
                        )
                      ]
                      spids: [1731]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_DEBS)
                          op: Equal
                          rhs: {(download_release)}
                          spids: [1735]
                        )
                      ]
                      spids: [1735]
                    )
                  ]
                  spids: [1727 1728 1739 16777215]
                )
                (case_arm
                  pat_list: [{(main)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_INDICES)
                          op: Equal
                          rhs: {(download_main_indices)}
                          spids: [1746]
                        )
                      ]
                      spids: [1746]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DOWNLOAD_DEBS)
                          op: Equal
                          rhs: {(download_main)}
                          spids: [1750]
                        )
                      ]
                      spids: [1750]
                    )
                  ]
                  spids: [1742 1743 1754 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(BADMIRROR)} {(DQ ('unknown mirror style'))})]
                  spids: [1757 1758 1772 16777215]
                )
              ]
              spids: [1718 1724 1775]
            )
            (C {(export)} {(DOWNLOAD_INDICES)})
            (C {(export)} {(DOWNLOAD_DEBS)})
          ]
          spids: [1715]
        )
      spids: [1710 1714]
    )
    (FuncDef
      name: force_md5
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DEBOOTSTRAP_CHECKSUM_FIELD)
                  op: Equal
                  rhs: {(MD5SUM)}
                  spids: [1798]
                )
              ]
              spids: [1798]
            )
            (C {(export)} {(DEBOOTSTRAP_CHECKSUM_FIELD)})
          ]
          spids: [1795]
        )
      spids: [1790 1794]
    )
    (FuncDef
      name: verify_checksum
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expchecksum)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [1823]
                )
              ]
              spids: [1821]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:expsize)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [1831]
                )
              ]
              spids: [1829]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DEBOOTSTRAP_CHECKSUM_FIELD'))} 
                          {(Lit_Other '=')} {(DQ (MD5SUM))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(Sentence child:(C {(in_path)} {(md5sum)}) terminator:<Op_Semi ';'>)]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:relchecksum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(md5sum)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Less
                                                        fd: 16777215
                                                        arg_word: {(DQ ($ VSub_Number '$1'))}
                                                        spids: [1871]
                                                      )
                                                    ]
                                                  )
                                                  (C {(sed)} {(SQ <'s/ .*$//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1868 1884]
                                      )
                                    }
                                  spids: [1867]
                                )
                              ]
                              spids: [1867]
                            )
                          ]
                          spids: [16777215 1864]
                        )
                        (if_arm
                          cond: [(Sentence child:(C {(in_path)} {(md5)}) terminator:<Op_Semi ';'>)]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:relchecksum)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (SimpleCommand
                                                words: [{(md5)}]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Less
                                                    fd: 16777215
                                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                                    spids: [1901]
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [1898 1906]
                                      )
                                    }
                                  spids: [1897]
                                )
                              ]
                              spids: [1897]
                            )
                          ]
                          spids: [1887 1894]
                        )
                      ]
                      else_action: [(C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Cannot check md5sum'))})]
                      spids: [1909 1923]
                    )
                  ]
                  spids: [16777215 1854]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE) (sum))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:relchecksum)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (SimpleCommand
                                                words: [{(sha) (${ VSub_Name SHA_SIZE) (sum)}]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Less
                                                    fd: 16777215
                                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                                    spids: [1953]
                                                  )
                                                ]
                                              )
                                              (C {(sed)} {(SQ <'s/ .*$//'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [1946 1966]
                                  )
                                }
                              spids: [1945]
                            )
                          ]
                          spids: [1945]
                        )
                      ]
                      spids: [16777215 1942]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE))})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:relchecksum)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(sha) (${ VSub_Name SHA_SIZE)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Less
                                                fd: 16777215
                                                arg_word: {(DQ ($ VSub_Number '$1'))}
                                                spids: [1991]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [1985 1996]
                                  )
                                }
                              spids: [1984]
                            )
                          ]
                          spids: [1984]
                        )
                      ]
                      spids: [1969 1981]
                    )
                  ]
                  else_action: [
                    (C {(error)} {(1)} {(SIGCHECK)} 
                      {(DQ ('Cannot check sha') (${ VSub_Name SHA_SIZE) (sum))}
                    )
                  ]
                  spids: [1999 2017]
                )
              ]
              spids: [1926 2020]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsize)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [{(wc)} {(-c)}]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Less
                                    fd: 16777215
                                    arg_word: {(DQ ($ VSub_Number '$1'))}
                                    spids: [2029]
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2024 2034]
                      )
                    }
                  spids: [2023]
                )
              ]
              spids: [2023]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$expsize'))} {(-ne)} 
                              {(DQ ($ VSub_Name '$relsize'))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$expchecksum'))} 
                              {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$relchecksum'))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                  spids: [16777215 2071]
                )
              ]
              spids: [16777215 2079]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1814]
        )
      spids: [1809 1813]
    )
    (FuncDef
      name: get
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:displayname) op:Equal spids:[2107])]
              spids: [2105]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:versionname) op:Equal spids:[2112])]
              spids: [2110]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Number 2>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.deb)})
                                spids: [2120 2124]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:displayname)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Number '$2'))})
                                            (C {(sed)} {(SQ <'s,^.*/,,;s,_.*$,,'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2142 2156]
                                )
                              )
                            }
                          spids: [2140]
                        )
                      ]
                      spids: [2140]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:versionname)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Number '$2'))})
                                            (C {(sed)} {(SQ <'s,^.*/,,'>)})
                                            (C {(cut)} {(-d_)} {(-f2)})
                                            (C {(sed)} {(SQ <'s/%3a/:/'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2162 2192]
                                )
                              )
                            }
                          spids: [2160]
                        )
                      ]
                      spids: [2160]
                    )
                  ]
                  spids: [16777215 2137]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:displayname)
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [
                                    (Pipeline
                                      children: [
                                        (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                                        (C {(sed)} {(SQ <'s,^.*/,,'>)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [2201 2215]
                            )
                          )
                        }
                      spids: [2199]
                    )
                  ]
                  spids: [2199]
                )
              ]
              spids: [2196 2219]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [16777215 2252]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other '=')} 
                                  {(nocache)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})]
                          spids: [2260 2275]
                        )
                      ]
                      else_action: [
                        (C {(info)} {(VALIDATING)} {(DQ ('Validating %s %s'))} 
                          {(DQ ($ VSub_Name '$displayname'))} {(DQ ($ VSub_Name '$versionname'))}
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(verify_checksum)} {(DQ ($ VSub_Number '$2'))} 
                                      {(DQ ($ VSub_Number '$3'))} {(DQ ($ VSub_Number '$4'))}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                              spids: [16777215 2324]
                            )
                          ]
                          else_action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})]
                          spids: [2332 2344]
                        )
                      ]
                      spids: [2287 2347]
                    )
                  ]
                  spids: [16777215 2236]
                )
              ]
              spids: [16777215 2350]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other '=')} {(nocache)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(set)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))})]
                  spids: [16777215 2372]
                )
              ]
              spids: [16777215 2386]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(-gt)} {(5)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:st) op:Equal rhs:{(3)} spids:[2410])]
                      spids: [2408]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$5'))} {(Lit_Other '=')} 
                                  {(DQ (-))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:st)
                                      op: Equal
                                      rhs: {(6)}
                                      spids: [2433]
                                    )
                                  ]
                                  spids: [2433]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 2431]
                        )
                      ]
                      spids: [16777215 2437]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:order)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Sentence
                                          child: 
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:a)
                                                  op: Equal
                                                  rhs: {($ VSub_Name '$st')}
                                                  spids: [2445]
                                                )
                                              ]
                                              spids: [2445]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                        (Pipeline
                                          children: [
                                            (While
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$a'))} 
                                                      {(-le)} {($ VSub_Pound '$#')} {(Lit_Other ']')}
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (Sentence
                                                      child: 
                                                        (C {(eval)} {(echo)} 
                                                          {
                                                            (EscapedLiteralPart
                                                              token: <Lit_EscapedChar '\\"'>
                                                            ) (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (Lit_LBrace '{') 
                                                            (ArithSubPart
                                                              anode: 
                                                                (ArithBinary
                                                                  op_id: Arith_Plus
                                                                  left: 
                                                                    (ArithWord
                                                                      w: {($ VSub_Name '$a')}
                                                                    )
                                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                                )
                                                              spids: [2473 2478]
                                                            ) (Lit_RBrace '}') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                                          } {($ VSub_Name '$a')}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                    (Sentence
                                                      child: 
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:a)
                                                              op: Equal
                                                              rhs: 
                                                                {
                                                                  (ArithSubPart
                                                                    anode: 
                                                                      (ArithBinary
                                                                        op_id: Arith_Plus
                                                                        left: 
                                                                          (ArithWord
                                                                            w: {($ VSub_Name '$a')}
                                                                          )
                                                                        right: 
                                                                          (ArithWord
                                                                            w: {(Lit_Digits 3)}
                                                                          )
                                                                      )
                                                                    spids: [2487 2494]
                                                                  )
                                                                }
                                                              spids: [2486]
                                                            )
                                                          ]
                                                          spids: [2486]
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [2464 2497]
                                                )
                                            )
                                            (C {(sort)} {(-n)})
                                            (C {(sed)} {(SQ <'s/.* //'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2444 2512]
                                )
                              )
                            }
                          spids: [2442]
                        )
                      ]
                      spids: [2440]
                    )
                  ]
                  spids: [16777215 2405]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:order) op:Equal rhs:{(3)} spids:[2521])]
                  spids: [2519]
                )
              ]
              spids: [2516 2525]
            )
            (ForEach
              iter_name: a
              iter_words: [{($ VSub_Name '$order')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:checksum)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(eval)} {(echo)} 
                                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (Lit_LBrace '{') ($ VSub_Name '$a') (Lit_RBrace '}')
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2544 2553]
                                )
                              )
                            }
                          spids: [2542]
                        )
                      ]
                      spids: [2540]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:siz)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(eval)} {(echo)} 
                                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (Lit_LBrace '{') 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$a')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [2568 2575]
                                            ) (Lit_RBrace '}')
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2561 2577]
                                )
                              )
                            }
                          spids: [2559]
                        )
                      ]
                      spids: [2557]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:typ)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(eval)} {(echo)} 
                                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                            (Lit_LBrace '{') 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$a')})
                                                  right: (ArithWord w:{(Lit_Digits 2)})
                                                )
                                              spids: [2592 2599]
                                            ) (Lit_RBrace '}')
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2585 2601]
                                )
                              )
                            }
                          spids: [2583]
                        )
                      ]
                      spids: [2581]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:from) op:Equal spids:[2607])]
                      spids: [2605]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:dest) op:Equal spids:[2612])]
                      spids: [2610]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:iters) op:Equal rhs:{(0)} spids:[2617])]
                      spids: [2615]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$typ'))}
                      arms: [
                        (case_arm
                          pat_list: [{(xz)}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1') (.xz))}
                                      spids: [2634]
                                    )
                                  ]
                                  spids: [2634]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2') (.xz))}
                                  spids: [2641]
                                )
                              ]
                              spids: [2641]
                            )
                          ]
                          spids: [2631 2632 2647 16777215]
                        )
                        (case_arm
                          pat_list: [{(bz2)}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1') (.bz2))}
                                      spids: [2653]
                                    )
                                  ]
                                  spids: [2653]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2') (.bz2))}
                                  spids: [2660]
                                )
                              ]
                              spids: [2660]
                            )
                          ]
                          spids: [2650 2651 2666 16777215]
                        )
                        (case_arm
                          pat_list: [{(gz)}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1') (.gz))}
                                      spids: [2672]
                                    )
                                  ]
                                  spids: [2672]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2') (.gz))}
                                  spids: [2679]
                                )
                              ]
                              spids: [2679]
                            )
                          ]
                          spids: [2669 2670 2685 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:from)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$1'))}
                                      spids: [2691]
                                    )
                                  ]
                                  spids: [2691]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2'))}
                                  spids: [2697]
                                )
                              ]
                              spids: [2697]
                            )
                          ]
                          spids: [2688 2689 2702 16777215]
                        )
                      ]
                      spids: [2622 2628 2705]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name dest>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Pound
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [2714 2718]
                                      )
                                    )
                                  } {(Lit_Other '=')} {(DQ ($ VSub_Name '$dest'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest)
                                  op: Equal
                                  rhs: {(DQ (./) ($ VSub_Name '$dest'))}
                                  spids: [2733]
                                )
                              ]
                              spids: [2733]
                            )
                          ]
                          spids: [16777215 2730]
                        )
                      ]
                      spids: [16777215 2740]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:dest2)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$dest'))}
                          spids: [2745]
                        )
                      ]
                      spids: [2743]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-d)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name dest2>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /) ('*')}
                                          )
                                        spids: [2758 2763]
                                      ) (/partial)
                                    )
                                  } {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dest2)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name dest2>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Percent
                                              arg_word: {(Lit_Slash /) ('*')}
                                            )
                                          spids: [2775 2780]
                                        ) (/partial/) 
                                        (BracedVarSub
                                          token: <VSub_Name dest2>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPound
                                              arg_word: {('*') (Lit_Slash /)}
                                            )
                                          spids: [2782 2787]
                                        )
                                      )
                                    }
                                  spids: [2773]
                                )
                              ]
                              spids: [2773]
                            )
                          ]
                          spids: [16777215 2770]
                        )
                      ]
                      spids: [16777215 2791]
                    )
                    (While
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$iters'))} {(-lt)} {(10)} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (C {(info)} {(RETRIEVING)} {(DQ ('Retrieving %s %s'))} 
                              {(DQ ($ VSub_Name '$displayname'))} {(DQ ($ VSub_Name '$versionname'))}
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(just_get)} {(DQ ($ VSub_Name '$from'))} 
                                              {(DQ ($ VSub_Name '$dest2'))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                          arg_word: {(2)}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 2845]
                                )
                              ]
                              spids: [16777215 2852]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$checksum'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(info)} {(VALIDATING)} {(DQ ('Validating %s %s'))} 
                                      {(DQ ($ VSub_Name '$displayname'))} {(DQ ($ VSub_Name '$versionname'))}
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(verify_checksum)} {(DQ ($ VSub_Name '$dest2'))} 
                                                  {(DQ ($ VSub_Name '$checksum'))} {(DQ ($ VSub_Name '$siz'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:checksum)
                                                  op: Equal
                                                  rhs: {(DQ )}
                                                  spids: [2912]
                                                )
                                              ]
                                              spids: [2912]
                                            )
                                          ]
                                          spids: [16777215 2909]
                                        )
                                      ]
                                      spids: [16777215 2917]
                                    )
                                  ]
                                  spids: [16777215 2872]
                                )
                              ]
                              spids: [16777215 2920]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$checksum'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$dest2'))} 
                                          {(Lit_Other '=')} {(DQ ($ VSub_Name '$dest'))} {(Lit_Other ']')}
                                        )
                                        (C {(mv)} {(DQ ($ VSub_Name '$dest2'))} 
                                          {(DQ ($ VSub_Name '$dest'))}
                                        )
                                      ]
                                    )
                                    (Case
                                      to_match: {(DQ ($ VSub_Name '$typ'))}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(gz)}]
                                          action: [(C {(gunzip)} {(DQ ($ VSub_Name '$dest'))})]
                                          spids: [2975 2976 2984 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(bz2)}]
                                          action: [(C {(bunzip2)} {(DQ ($ VSub_Name '$dest'))})]
                                          spids: [2987 2988 2996 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(xz)}]
                                          action: [(C {(unxz)} {(DQ ($ VSub_Name '$dest'))})]
                                          spids: [2999 3000 3008 16777215]
                                        )
                                      ]
                                      spids: [2966 2972 3011]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(0)}
                                    )
                                  ]
                                  spids: [16777215 2936]
                                )
                              ]
                              else_action: [
                                (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest2'))})
                                (C {(warning)} {(RETRYING)} {(DQ ('Retrying failed download of %s'))} 
                                  {(DQ ($ VSub_Name '$from'))}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:iters)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$iters')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [3046 3053]
                                            )
                                          )
                                        }
                                      spids: [3044]
                                    )
                                  ]
                                  spids: [3044]
                                )
                              ]
                              spids: [3019 3057]
                            )
                          ]
                          spids: [2810 3060]
                        )
                    )
                    (C {(warning)} {(CORRUPTFILE)} {(DQ ('%s was corrupt'))} {(DQ ($ VSub_Name '$from'))})
                  ]
                  spids: [2537 3076]
                )
              spids: [2533 2535]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [2094]
        )
      spids: [2089 2093]
    )
    (FuncDef
      name: just_get
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:from)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [3100]
                )
              ]
              spids: [3098]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [3108]
                )
              ]
              spids: [3106]
            )
            (C {(mkdir)} {(-p)} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name dest>
                    suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
                    spids: [3119 3124]
                  )
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('null:')})
                                spids: [3133 3137]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(NOTPREDL)} {(DQ ('%s was not pre-downloaded'))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name from>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('null:')})
                            spids: [3164 3168]
                          )
                        )
                      }
                    )
                  ]
                  spids: [16777215 3150]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name from>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Pound
                                        arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)}
                                      )
                                    spids: [3177 3183]
                                  )
                                )
                              } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name from>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Pound
                                        arg_word: {('ftp:') (Lit_Slash /) (Lit_Slash /)}
                                      )
                                    spids: [3200 3206]
                                  )
                                )
                              } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(wgetprogress)} {(-O)} {(DQ ($ VSub_Name '$dest'))} 
                                  {(DQ ($ VSub_Name '$from'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [16777215 3241]
                        )
                      ]
                      else_action: [
                        (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [3249 3266]
                    )
                  ]
                  spids: [3172 3219]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_Pound
                                    arg_word: {('https:') (Lit_Slash /) (Lit_Slash /)}
                                  )
                                spids: [3274 3280]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(wgetprogress)} {($ VSub_Name '$CHECKCERTIF')} 
                                  {($ VSub_Name '$CERTIFICATE')} {($ VSub_Name '$PRIVATEKEY')} {(-O)} {(DQ ($ VSub_Name '$dest'))} {(DQ ($ VSub_Name '$from'))}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [16777215 3322]
                        )
                      ]
                      else_action: [
                        (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest'))})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                      spids: [3330 3347]
                    )
                  ]
                  spids: [3269 3294]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('file:')})
                                spids: [3355 3359]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:base)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name from>
                                  suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('file:')})
                                  spids: [3379 3383]
                                )
                              )
                            }
                          spids: [3377]
                        )
                      ]
                      spids: [3375]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name base>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Pound
                                            arg_word: {(Lit_Slash /) (Lit_Slash /)}
                                          )
                                        spids: [3392 3397]
                                      )
                                    )
                                  } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$base'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:base)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (/) 
                                        (BracedVarSub
                                          token: <VSub_Name from>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_Pound
                                              arg_word: 
                                                {('file:') (Lit_Slash /) (Lit_Slash /) ('*') 
                                                  (Lit_Slash /)
                                                }
                                            )
                                          spids: [3416 3424]
                                        )
                                      )
                                    }
                                  spids: [3413]
                                )
                              ]
                              spids: [3413]
                            )
                          ]
                          spids: [16777215 3410]
                        )
                      ]
                      spids: [16777215 3428]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$base'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(cp)} {(DQ ($ VSub_Name '$base'))} {(DQ ($ VSub_Name '$dest'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [16777215 3444]
                        )
                      ]
                      else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                      spids: [3463 3471]
                    )
                  ]
                  spids: [3350 3372]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name from>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('ssh:')})
                                spids: [3479 3483]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ssh_dest)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {($ VSub_Name '$from')})
                                            (C {(sed)} {(-e)} {(SQ <'s#ssh://##'>)} {(-e)} 
                                              {(SQ <'s#/#:/#'>)}
                                            )
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [3503 3523]
                                )
                              )
                            }
                          spids: [3501]
                        )
                      ]
                      spids: [3499]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$ssh_dest'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(scp)} {(DQ ($ VSub_Name '$ssh_dest'))} {(DQ ($ VSub_Name '$dest'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [16777215 3540]
                        )
                      ]
                      else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                      spids: [3559 3567]
                    )
                  ]
                  spids: [3474 3496]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(UNKNOWNLOC)} {(DQ ('unknown location %s'))} 
                  {(DQ ($ VSub_Name '$from'))}
                )
              ]
              spids: [3570 3588]
            )
          ]
          spids: [3091]
        )
      spids: [3086 3090]
    )
    (FuncDef
      name: download
      body: 
        (BraceGroup
          children: [
            (C {(mk_download_dirs)})
            (C {(DQ ($ VSub_Name '$DOWNLOAD_DEBS'))} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_At '$@'))})
                            (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                            (C {(sort)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [3608 3630]
                )
              }
            )
          ]
          spids: [3598]
        )
      spids: [3593 3597]
    )
    (FuncDef
      name: download_indices
      body: 
        (BraceGroup
          children: [
            (C {(mk_download_dirs)})
            (C {(DQ ($ VSub_Name '$DOWNLOAD_INDICES'))} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_At '$@'))})
                            (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                            (C {(sort)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [3650 3672]
                )
              }
            )
          ]
          spids: [3640]
        )
      spids: [3635 3639]
    )
    (FuncDef
      name: debfor
      body: 
        (BraceGroup
          children: [
            (Subshell
              child: 
                (While
                  cond: [(Sentence child:(C {(read)} {(pkg)} {(path)}) terminator:<Op_Semi ';'>)]
                  body: 
                    (DoGroup
                      children: [
                        (ForEach
                          iter_name: p
                          iter_words: [{(DQ ($ VSub_At '$@'))}]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (Sentence
                                  child: 
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$p'))} {(Lit_Other '=')} 
                                          {(DQ ($ VSub_Name '$pkg'))} {(Lit_Other ']')}
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                        )
                                      ]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                                (C {(echo)} {(DQ ($ VSub_Name '$path'))})
                              ]
                              spids: [3709 3739]
                            )
                          spids: [3703 3707]
                        )
                      ]
                      spids: [3695 3742]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debpaths))}
                      spids: [3744]
                    )
                  ]
                )
              spids: [3685 3751]
            )
          ]
          spids: [3682]
        )
      spids: [3677 3681]
    )
    (FuncDef
      name: apt_dest
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(deb)}]
                  action: [
                    (Pipeline
                      children: [
                        (C {(echo)} 
                          {
                            (DQ (/var/cache/apt/archives/) (${ VSub_Number 2) (_) (${ VSub_Number 3) (_) 
                              (${ VSub_Number 4) (.deb)
                            )
                          }
                        )
                        (C {(sed)} {(SQ <'s/:/%3a/'>)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [3789 3790 3820 16777215]
                )
                (case_arm
                  pat_list: [{(pkg)}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$5'))}
                          spids: [3829]
                        )
                      ]
                      spids: [3827]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ (debootstrap.invalid))}
                          spids: [3835]
                        )
                      ]
                      spids: [3835]
                    )
                    (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_Name '$APTSTATE') (/lists/))})
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name m) (_) ($ VSub_Number '$6'))})
                        (C {(sed)} {(SQ <'s/\\//_/g'>)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [3823 3824 3901 16777215]
                )
                (case_arm
                  pat_list: [{(rel)}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number '$3'))}
                          spids: [3910]
                        )
                      ]
                      spids: [3908]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:m)
                          op: Equal
                          rhs: {(DQ (debootstrap.invalid))}
                          spids: [3916]
                        )
                      ]
                      spids: [3916]
                    )
                    (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_Name '$APTSTATE') (/lists/))})
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name m) (_) ($ VSub_Number '$4'))})
                        (C {(sed)} {(SQ <'s/\\//_/g'>)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [3904 3905 3981 16777215]
                )
              ]
              spids: [3780 3786 3984]
            )
          ]
          spids: [3761]
        )
      spids: [3756 3760]
    )
    (FuncDef
      name: get_release_checksum
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4003]
                )
              ]
              spids: [4001]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:path)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [4011]
                )
              ]
              spids: [4009]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DEBOOTSTRAP_CHECKSUM_FIELD'))} 
                          {(Lit_Other '=')} {(MD5SUM)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:match)
                          op: Equal
                          rhs: {(DQ ('^[Mm][Dd]5[Ss][Uu][Mm]'))}
                          spids: [4037]
                        )
                      ]
                      spids: [4035]
                    )
                  ]
                  spids: [16777215 4032]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:match)
                      op: Equal
                      rhs: {(DQ ('^[Ss][Hh][Aa]') ($ VSub_Name '$SHA_SIZE') (':'))}
                      spids: [4048]
                    )
                  ]
                  spids: [4046]
                )
              ]
              spids: [4043 4056]
            )
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(sed)} {(-n)} {(DQ (/) ($ VSub_Name '$match') ('/,/^[^ ]/p'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$reldest'))}
                      spids: [4069]
                    )
                  ]
                )
                (While
                  cond: [(Sentence child:(C {(read)} {(a)} {(b)} {(c)}) terminator:<Op_Semi ';'>)]
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$c'))} {(Lit_Other '=')} 
                                      {(DQ ($ VSub_Name '$path'))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Sentence
                                  child: (C {(echo)} {(DQ ($ VSub_Name '$a') (' ') ($ VSub_Name '$b'))})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              spids: [16777215 4110]
                            )
                          ]
                          spids: [16777215 4121]
                        )
                      ]
                      spids: [4090 4124]
                    )
                )
                (C {(head)} {(-n)} {(1)})
              ]
              negated: F
            )
          ]
          spids: [3998]
        )
      spids: [3993 3997]
    )
    (FuncDef
      name: extract_release_components
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:reldest)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [4147]
                    )
                  ]
                  spids: [4145]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TMPCOMPONENTS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(sed)} {(-n)} {(SQ <'s/Components: *//p'>)} 
                                  {(DQ ($ VSub_Name '$reldest'))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [4158 4170]
                        )
                      )
                    }
                  spids: [4156]
                )
              ]
              spids: [4156]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$TMPCOMPONENTS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(eval)} 
                      {
                        (DQ ('\n') ('\t\tcase ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (c) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' in\n') ('\t\t    ') 
                          ($ VSub_Name '$USE_COMPONENTS') (')\n') ('\t\t\tCOMPONENTS=') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('COMPONENTS ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (c) 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\t\t;;\n') ('\t\tesac\n') ('\t\t')
                        )
                      }
                    )
                  ]
                  spids: [4184 4214]
                )
              spids: [4179 4182]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPONENTS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(echo)} {($ VSub_Name '$COMPONENTS')})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [4219 4223]
                        )
                      )
                    }
                  spids: [4217]
                )
              ]
              spids: [4217]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$COMPONENTS'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(mv)} {(DQ ($ VSub_Name '$reldest'))} 
                      {(DQ ($ VSub_Name '$reldest') (.malformed))}
                    )
                    (C {(error)} {(1)} {(INVALIDREL)} {(DQ ('Invalid Release file, no valid components'))})
                  ]
                  spids: [16777215 4240]
                )
              ]
              spids: [16777215 4266]
            )
          ]
          spids: [4142]
        )
      spids: [4137 4141]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CODENAME) op:Equal rhs:{(DQ )} spids:[4271])]
      spids: [4271]
    )
    (FuncDef
      name: validate_suite
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4285]
                )
              ]
              spids: [4283]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CODENAME)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(sed)} {(-n)} {(DQ ('s/^Codename: *//p'))} 
                                {(DQ ($ VSub_Name '$reldest'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4293 4305]
                      )
                    }
                  spids: [4292]
                )
              ]
              spids: [4292]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:suite)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(sed)} {(-n)} {(DQ ('s/^Suite: *//p'))} {(DQ ($ VSub_Name '$reldest'))})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4311 4323]
                      )
                    }
                  spids: [4310]
                )
              ]
              spids: [4308]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SUITE'))} 
                              {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$suite'))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$SUITE'))} 
                              {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$CODENAME'))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(WRONGSUITE)} 
                      {(DQ ('Asked to install suite %s, but got %s (codename: %s) from mirror'))} {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$suite'))} {(DQ ($ VSub_Name '$CODENAME'))}
                    )
                  ]
                  spids: [16777215 4362]
                )
              ]
              spids: [16777215 4388]
            )
          ]
          spids: [4280]
        )
      spids: [4275 4279]
    )
    (FuncDef
      name: split_inline_sig
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:inreldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4403]
                )
              ]
              spids: [4401]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [4411]
                )
              ]
              spids: [4409]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsigdest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [4419]
                )
              ]
              spids: [4417]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$reldest'))} {(DQ ($ VSub_Name '$relsigdest'))})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:nl) op:Equal rhs:{(DQ )} spids:[4459])]
              spids: [4459]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:state) op:Equal rhs:{(pre-begin)} spids:[4464])]
              spids: [4464]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(read)} {(-r)} {(line)}]
                      more_env: [(env_pair name:IFS val:{(EmptyPart)} spids:[4470])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (${ VSub_Name state))}
                      arms: [
                        (case_arm
                          pat_list: [{(pre-begin)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ ('x-----BEGIN PGP SIGNED MESSAGE-----'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:state)
                                          op: Equal
                                          rhs: {(begin)}
                                          spids: [4520]
                                        )
                                      ]
                                      spids: [4520]
                                    )
                                  ]
                                  spids: [16777215 4517]
                                )
                              ]
                              spids: [16777215 4524]
                            )
                          ]
                          spids: [4493 4494 4527 16777215]
                        )
                        (case_arm
                          pat_list: [{(begin)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ (x))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:state)
                                          op: Equal
                                          rhs: {(data)}
                                          spids: [4557]
                                        )
                                      ]
                                      spids: [4557]
                                    )
                                  ]
                                  spids: [16777215 4554]
                                )
                              ]
                              spids: [16777215 4561]
                            )
                          ]
                          spids: [4530 4531 4564 16777215]
                        )
                        (case_arm
                          pat_list: [{(data)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ ('x-----BEGIN PGP SIGNATURE-----'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [
                                        {(printf)}
                                        {(DQ ('%s') (Lit_Other '\\') (n))}
                                        {(DQ (${ VSub_Name line))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(DQ ($ VSub_Name '$relsigdest'))}
                                          spids: [4608]
                                        )
                                      ]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:state)
                                          op: Equal
                                          rhs: {(signature)}
                                          spids: [4615]
                                        )
                                      ]
                                      spids: [4615]
                                    )
                                  ]
                                  spids: [16777215 4591]
                                )
                              ]
                              else_action: [
                                (SimpleCommand
                                  words: [
                                    {(printf)}
                                    {(DQ (${ VSub_Name nl) ('%s'))}
                                    {(DQ (${ VSub_Name line))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_DGreat
                                      fd: 16777215
                                      arg_word: {(DQ ($ VSub_Name '$reldest'))}
                                      spids: [4637]
                                    )
                                  ]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:nl)
                                      op: Equal
                                      rhs: {(DQ (Lit_Other '\\') (n))}
                                      spids: [4644]
                                    )
                                  ]
                                  spids: [4644]
                                )
                              ]
                              spids: [4619 4651]
                            )
                          ]
                          spids: [4567 4568 4654 16777215]
                        )
                        (case_arm
                          pat_list: [{(signature)}]
                          action: [
                            (SimpleCommand
                              words: [
                                {(printf)}
                                {(DQ ('%s') (Lit_Other '\\') (n))}
                                {(DQ (${ VSub_Name line))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$relsigdest'))}
                                  spids: [4675]
                                )
                              ]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} 
                                          {(Lit_Other '=')} {(DQ ('x-----END PGP SIGNATURE-----'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                                  spids: [16777215 4702]
                                )
                              ]
                              spids: [16777215 4708]
                            )
                          ]
                          spids: [4657 4658 16777215 4711]
                        )
                      ]
                      spids: [4482 4490 4711]
                    )
                  ]
                  spids: [4479 4714]
                )
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$inreldest'))}
                  spids: [4716]
                )
              ]
            )
          ]
          spids: [4398]
        )
      spids: [4393 4397]
    )
    (FuncDef
      name: download_release_sig
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [4735]
                )
              ]
              spids: [4733]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:inreldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [4743]
                )
              ]
              spids: [4741]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [4751]
                )
              ]
              spids: [4749]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsigdest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$4'))}
                  spids: [4759]
                )
              ]
              spids: [4757]
            )
            (C {(progress)} {(0)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))})
            (C {(progress_next)} {(100)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(get)} 
                          {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/InRelease))} {(DQ ($ VSub_Name '$inreldest'))} {(nocache)}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(split_inline_sig)} {(DQ ($ VSub_Name '$inreldest'))} 
                      {(DQ ($ VSub_Name '$reldest'))} {(DQ ($ VSub_Name '$relsigdest'))}
                    )
                    (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))})
                  ]
                  spids: [16777215 4802]
                )
              ]
              else_action: [
                (AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(get)} {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/Release))} 
                      {(DQ ($ VSub_Name '$reldest'))} {(nocache)}
                    )
                    (C {(error)} {(1)} {(NOGETREL)} {(DQ ('Failed getting release file %s'))} 
                      {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/Release))}
                    )
                  ]
                )
                (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))})
              ]
              spids: [4833 4885]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$KEYRING'))} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$DISABLE_KEYRING'))} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(progress)} {(0)} {(100)} {(DOWNRELSIG)} 
                      {(DQ ('Downloading Release file signature'))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$relsigdest'))} 
                                      {(Lit_Other ']')}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(progress_next)} {(50)})
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(get)} 
                                  {
                                    (DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') 
                                      (/Release.gpg)
                                    )
                                  } {(DQ ($ VSub_Name '$relsigdest'))} {(nocache)}
                                )
                                (C {(error)} {(1)} {(NOGETRELSIG)} 
                                  {(DQ ('Failed getting release signature file %s'))} {(DQ ($ VSub_Name '$m1') (/dists/) ($ VSub_Name '$SUITE') (/Release.gpg))}
                                )
                              ]
                            )
                            (C {(progress)} {(50)} {(100)} {(DOWNRELSIG)} 
                              {(DQ ('Downloading Release file signature'))}
                            )
                          ]
                          spids: [16777215 4944]
                        )
                      ]
                      spids: [16777215 5003]
                    )
                    (C {(info)} {(RELEASESIG)} {(DQ ('Checking Release signature'))})
                    (Pipeline
                      children: [
                        (Subshell
                          child: 
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(gpgv)} {(--status-fd)} {(1)} {(--keyring)} 
                                  {(DQ ($ VSub_Name '$KEYRING'))} {(--ignore-time-conflict)} {(DQ ($ VSub_Name '$relsigdest'))} {(DQ ($ VSub_Name '$reldest'))}
                                )
                                (C {(true)})
                              ]
                            )
                          spids: [5024 5052]
                        )
                        (C {(read_gpg_status)})
                      ]
                      negated: F
                    )
                    (C {(progress)} {(100)} {(100)} {(DOWNRELSIG)} 
                      {(DQ ('Downloading Release file signature'))}
                    )
                  ]
                  spids: [16777215 4913]
                )
              ]
              spids: [16777215 5072]
            )
          ]
          spids: [4730]
        )
      spids: [4725 4729]
    )
    (FuncDef
      name: download_release_indices
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [5089 5093]
                        )
                      )
                    }
                  spids: [5087]
                )
              ]
              spids: [5085]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:inreldest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$TARGET') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {($ VSub_Name '$DLDEST')} {(rel)} {(DQ ($ VSub_Name '$SUITE'))} 
                                  {(DQ ($ VSub_Name '$m1'))} {(DQ (dists/) ($ VSub_Name '$SUITE') (/InRelease))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5103 5121]
                        )
                      )
                    }
                  spids: [5099]
                )
              ]
              spids: [5097]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:reldest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$TARGET') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {($ VSub_Name '$DLDEST')} {(rel)} {(DQ ($ VSub_Name '$SUITE'))} 
                                  {(DQ ($ VSub_Name '$m1'))} {(DQ (dists/) ($ VSub_Name '$SUITE') (/Release))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5131 5149]
                        )
                      )
                    }
                  spids: [5127]
                )
              ]
              spids: [5125]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:relsigdest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$TARGET') (/) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {($ VSub_Name '$DLDEST')} {(rel)} {(DQ ($ VSub_Name '$SUITE'))} 
                                  {(DQ ($ VSub_Name '$m1'))} {(DQ (dists/) ($ VSub_Name '$SUITE') (/Release.gpg))}
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [5159 5177]
                        )
                      )
                    }
                  spids: [5155]
                )
              ]
              spids: [5153]
            )
            (C {(download_release_sig)} {(DQ ($ VSub_Name '$m1'))} {(DQ ($ VSub_Name '$inreldest'))} 
              {(DQ ($ VSub_Name '$reldest'))} {(DQ ($ VSub_Name '$relsigdest'))}
            )
            (C {(validate_suite)} {(DQ ($ VSub_Name '$reldest'))})
            (C {(extract_release_components)} {($ VSub_Name '$reldest')})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:totalpkgs) op:Equal rhs:{(0)} spids:[5218])]
              spids: [5216]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:subpath)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$c') (/binary-) ($ VSub_Name '$ARCH') (/Packages))}
                          spids: [5236]
                        )
                      ]
                      spids: [5234]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:xzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.xz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5249 5260]
                                )
                              )
                            }
                          spids: [5247]
                        )
                      ]
                      spids: [5245]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:bz2i)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.bz2))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5268 5279]
                                )
                              )
                            }
                          spids: [5266]
                        )
                      ]
                      spids: [5264]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.gz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5287 5298]
                                )
                              )
                            }
                          spids: [5285]
                        )
                      ]
                      spids: [5283]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:normi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5306 5316]
                                )
                              )
                            }
                          spids: [5304]
                        )
                      ]
                      spids: [5302]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:i)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [5322]
                        )
                      ]
                      spids: [5320]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$normi'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$normi'))}
                                  spids: [5345]
                                )
                              ]
                              spids: [5345]
                            )
                          ]
                          spids: [16777215 5342]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(in_path)} {(bunzip2)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$bz2i'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$bz2i'))}
                                  spids: [5377]
                                )
                              ]
                              spids: [5377]
                            )
                          ]
                          spids: [5351 5374]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(in_path)} {(unxz)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$xzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$xzi'))}
                                  spids: [5409]
                                )
                              ]
                              spids: [5409]
                            )
                          ]
                          spids: [5383 5406]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(in_path)} {(gunzip)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$gzi'))}
                                  spids: [5441]
                                )
                              ]
                              spids: [5441]
                            )
                          ]
                          spids: [5415 5438]
                        )
                      ]
                      spids: [16777215 5447]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$i'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:totalpkgs)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (ArithSubPart
                                          anode: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithWord w:{($ VSub_Name '$totalpkgs')})
                                              right: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name i>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Pound
                                                            arg_word: {('* ')}
                                                          )
                                                        spids: [5478 5482]
                                                      )
                                                    }
                                                )
                                            )
                                          spids: [5472 5485]
                                        )
                                      )
                                    }
                                  spids: [5470]
                                )
                              ]
                              spids: [5470]
                            )
                          ]
                          spids: [16777215 5467]
                        )
                      ]
                      else_action: [
                        (C {(mv)} {(DQ ($ VSub_Name '$reldest'))} 
                          {(DQ ($ VSub_Name '$reldest') (.malformed))}
                        )
                        (C {(error)} {(1)} {(MISSINGRELENTRY)} 
                          {(DQ ('Invalid Release file, no entry for %s'))} {(DQ ($ VSub_Name '$subpath'))}
                        )
                      ]
                      spids: [5489 5519]
                    )
                  ]
                  spids: [5231 5522]
                )
              spids: [5227 5229]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:donepkgs) op:Equal rhs:{(0)} spids:[5528])]
              spids: [5526]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:pkgdest) op:Equal spids:[5534])]
              spids: [5532]
            )
            (C {(progress)} {(0)} {($ VSub_Name '$totalpkgs')} {(DOWNPKGS)} 
              {(DQ ('Downloading Packages files'))}
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:subpath)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$c') (/binary-) ($ VSub_Name '$ARCH') (/Packages))}
                          spids: [5564]
                        )
                      ]
                      spids: [5562]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: {(DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$subpath'))}
                          spids: [5575]
                        )
                      ]
                      spids: [5573]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:xzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.xz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5588 5599]
                                )
                              )
                            }
                          spids: [5586]
                        )
                      ]
                      spids: [5584]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:bz2i)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.bz2))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5607 5618]
                                )
                              )
                            }
                          spids: [5605]
                        )
                      ]
                      spids: [5603]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:gzi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath') (.gz))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5626 5637]
                                )
                              )
                            }
                          spids: [5624]
                        )
                      ]
                      spids: [5622]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:normi)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_release_checksum)} {(DQ ($ VSub_Name '$reldest'))} 
                                          {(DQ ($ VSub_Name '$subpath'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_Backtick '`'>
                                  spids: [5645 5655]
                                )
                              )
                            }
                          spids: [5643]
                        )
                      ]
                      spids: [5641]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ext)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [5661]
                        )
                      ]
                      spids: [5659]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:i)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [5666]
                        )
                      ]
                      spids: [5664]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$normi'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$normi') (' .'))}
                                  spids: [5689]
                                )
                              ]
                              spids: [5689]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$normi'))}
                                  spids: [5698]
                                )
                              ]
                              spids: [5698]
                            )
                          ]
                          spids: [16777215 5686]
                        )
                      ]
                      spids: [16777215 5704]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(in_path)} {(unxz)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$xzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$xzi') (' xz'))}
                                  spids: [5733]
                                )
                              ]
                              spids: [5733]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_ColonHyphen
                                              arg_word: {($ VSub_Name '$xzi')}
                                            )
                                          spids: [5744 5748]
                                        )
                                      )
                                    }
                                  spids: [5742]
                                )
                              ]
                              spids: [5742]
                            )
                          ]
                          spids: [16777215 5730]
                        )
                      ]
                      spids: [16777215 5752]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(in_path)} {(bunzip2)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$bz2i'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$bz2i') (' bz2'))}
                                  spids: [5781]
                                )
                              ]
                              spids: [5781]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_ColonHyphen
                                              arg_word: {($ VSub_Name '$bz2i')}
                                            )
                                          spids: [5792 5796]
                                        )
                                      )
                                    }
                                  spids: [5790]
                                )
                              ]
                              spids: [5790]
                            )
                          ]
                          spids: [16777215 5778]
                        )
                      ]
                      spids: [16777215 5800]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(in_path)} {(gunzip)})
                                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gzi'))} 
                                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:ext)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$ext') (' ') ($ VSub_Name '$gzi') (' gz'))}
                                  spids: [5829]
                                )
                              ]
                              spids: [5829]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:i)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VTest_ColonHyphen
                                              arg_word: {($ VSub_Name '$gzi')}
                                            )
                                          spids: [5840 5844]
                                        )
                                      )
                                    }
                                  spids: [5838]
                                )
                              ]
                              spids: [5838]
                            )
                          ]
                          spids: [16777215 5826]
                        )
                      ]
                      spids: [16777215 5848]
                    )
                    (C {(progress_next)} 
                      {
                        (DQ 
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Plus
                                left: (ArithWord w:{($ VSub_Name '$donepkgs')})
                                right: 
                                  (ArithWord
                                    w: 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name i>
                                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('* ')})
                                          spids: [5859 5863]
                                        )
                                      }
                                  )
                              )
                            spids: [5854 5865]
                          )
                        )
                      }
                    )
                    (ForEach
                      iter_name: m
                      iter_words: [{($ VSub_Name '$MIRRORS')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [5885 5909]
                                        )
                                      )
                                    }
                                  spids: [5881]
                                )
                              ]
                              spids: [5881]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(get)} {(DQ ($ VSub_Name '$m') (/) ($ VSub_Name '$path'))} 
                                          {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$ext')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Break break>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 5930]
                                )
                              ]
                              spids: [16777215 5935]
                            )
                          ]
                          spids: [5878 5938]
                        )
                      spids: [5874 5876]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                  {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(error)} {(1)} {(COULDNTDL)} {(DQ ("Couldn't download %s"))} 
                              {(DQ ($ VSub_Name '$path'))}
                            )
                          ]
                          spids: [16777215 5956]
                        )
                      ]
                      spids: [16777215 5974]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:donepkgs)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$donepkgs')})
                                      right: 
                                        (ArithWord
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name i>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('* ')}
                                                  )
                                                spids: [5984 5988]
                                              )
                                            }
                                        )
                                    )
                                  spids: [5979 5990]
                                )
                              )
                            }
                          spids: [5977]
                        )
                      ]
                      spids: [5977]
                    )
                    (C {(progress)} {($ VSub_Name '$donepkgs')} {($ VSub_Name '$totalpkgs')} {(DOWNPKGS)} 
                      {(DQ ('Downloading Packages files'))}
                    )
                  ]
                  spids: [5559 6007]
                )
              spids: [5555 5557]
            )
          ]
          spids: [5082]
        )
      spids: [5077 5081]
    )
    (FuncDef
      name: get_package_sizes
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:m)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [6026]
                    )
                  ]
                  spids: [6024]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:pkgdest)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [6037]
                    )
                  ]
                  spids: [6035]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
            (Pipeline
              children: [
                (C {($ VSub_Name '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_Name '$m'))} 
                  {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))}
                )
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:newleft)
                              op: Equal
                              rhs: {(DQ )}
                              spids: [6067]
                            )
                          ]
                          spids: [6067]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:totaldebs)
                              op: Equal
                              rhs: {(0)}
                              spids: [6072]
                            )
                          ]
                          spids: [6072]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:countdebs)
                              op: Equal
                              rhs: {(0)}
                              spids: [6076]
                            )
                          ]
                          spids: [6076]
                        )
                        (While
                          cond: [
                            (Sentence
                              child: (C {(read)} {(p)} {(details)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                              {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:newleft)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name '$newleft') (' ') ($ VSub_Name '$p'))
                                                }
                                              spids: [6112]
                                            )
                                          ]
                                          spids: [6112]
                                        )
                                      ]
                                      spids: [16777215 6109]
                                    )
                                  ]
                                  else_action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:size)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name details>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('* ')}
                                                        )
                                                      spids: [6125 6129]
                                                    )
                                                  )
                                                }
                                              spids: [6123]
                                            )
                                          ]
                                          spids: [6123]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:totaldebs)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (ArithSubPart
                                                  anode: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: (ArithWord w:{($ VSub_Name '$totaldebs')})
                                                      right: (ArithWord w:{($ VSub_Name '$size')})
                                                    )
                                                  spids: [6136 6143]
                                                )
                                              )
                                            }
                                          spids: [6134]
                                        )
                                      ]
                                      spids: [6134]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:countdebs)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (ArithSubPart
                                                  anode: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: (ArithWord w:{($ VSub_Name '$countdebs')})
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [6149 6156]
                                                )
                                              )
                                            }
                                          spids: [6147]
                                        )
                                      ]
                                      spids: [6147]
                                    )
                                  ]
                                  spids: [6120 6160]
                                )
                              ]
                              spids: [6089 6163]
                            )
                        )
                        (C {(echo)} 
                          {
                            (DQ ($ VSub_Name '$countdebs') (' ') ($ VSub_Name '$totaldebs') 
                              ($ VSub_Name '$newleft')
                            )
                          }
                        )
                      ]
                    )
                  spids: [6064 6176]
                )
              ]
              negated: F
            )
          ]
          spids: [6017]
        )
      spids: [6012 6016]
    )
    (FuncDef
      name: download_debs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [6194]
                )
              ]
              spids: [6192]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgdest)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [6202]
                )
              ]
              spids: [6200]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (Pipeline
              children: [
                (C {($ VSub_Name '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_Name '$m'))} 
                  {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))}
                )
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:leftover)
                              op: Equal
                              rhs: {(DQ )}
                              spids: [6236]
                            )
                          ]
                          spids: [6236]
                        )
                        (While
                          cond: [
                            (Sentence
                              child: 
                                (C {(read)} {(p)} {(ver)} {(arc)} {(mdup)} {(fil)} {(checksum)} {(size)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ver'))} 
                                              {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:leftover)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name '$leftover') (' ') 
                                                    ($ VSub_Name '$p')
                                                  )
                                                }
                                              spids: [6283]
                                            )
                                          ]
                                          spids: [6283]
                                        )
                                      ]
                                      spids: [16777215 6280]
                                    )
                                  ]
                                  else_action: [
                                    (C {(progress_next)} 
                                      {
                                        (DQ 
                                          (ArithSubPart
                                            anode: 
                                              (ArithBinary
                                                op_id: Arith_Plus
                                                left: (ArithWord w:{($ VSub_Name '$dloaddebs')})
                                                right: (ArithWord w:{($ VSub_Name '$size')})
                                              )
                                            spids: [6297 6304]
                                          )
                                        )
                                      }
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:debdest)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$DLDEST')} {(deb)} 
                                                          {(DQ ($ VSub_Name '$p'))} {(DQ ($ VSub_Name '$ver'))} {(DQ ($ VSub_Name '$arc'))} {(DQ ($ VSub_Name '$m'))} 
                                                          {(DQ ($ VSub_Name '$fil'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [6312 6336]
                                                )
                                              )
                                            }
                                          spids: [6310]
                                        )
                                      ]
                                      spids: [6308]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(get)} 
                                                  {(DQ ($ VSub_Name '$m') (/) ($ VSub_Name '$fil'))} {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$debdest'))} {(DQ ($ VSub_Name '$checksum'))} 
                                                  {(DQ ($ VSub_Name '$size'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:dloaddebs)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (ArithSubPart
                                                          anode: 
                                                            (ArithBinary
                                                              op_id: Arith_Plus
                                                              left: 
                                                                (ArithWord
                                                                  w: {($ VSub_Name '$dloaddebs')}
                                                                )
                                                              right: 
                                                                (ArithWord
                                                                  w: {($ VSub_Name '$size')}
                                                                )
                                                            )
                                                          spids: [6370 6377]
                                                        )
                                                      )
                                                    }
                                                  spids: [6368]
                                                )
                                              ]
                                              spids: [6368]
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {
                                                  (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$ver') 
                                                    (' ') ($ VSub_Name '$m') (/) ($ VSub_Name '$fil')
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: 16777215
                                                  arg_word: 
                                                    {($ VSub_Name '$TARGET') (/debootstrap/deburis)}
                                                  spids: [6383]
                                                )
                                              ]
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {
                                                  (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$debdest'))
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: 16777215
                                                  arg_word: 
                                                    {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                                                  spids: [6400]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [16777215 6365]
                                        )
                                      ]
                                      else_action: [
                                        (C {(warning)} {(COULDNTDL)} 
                                          {(DQ ("Couldn't download package %s (ver %s arch %s)"))} {(DQ ($ VSub_Name '$p'))} {(DQ ($ VSub_Name '$ver'))} {(DQ ($ VSub_Name '$arc'))}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:leftover)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name '$leftover') (' ') 
                                                    ($ VSub_Name '$p')
                                                  )
                                                }
                                              spids: [6435]
                                            )
                                          ]
                                          spids: [6435]
                                        )
                                      ]
                                      spids: [6411 6443]
                                    )
                                  ]
                                  spids: [6291 6446]
                                )
                              ]
                              spids: [6260 6449]
                            )
                        )
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {
                              (BracedVarSub
                                token: <VSub_Name leftover>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(' ')})
                                spids: [6457 6461]
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 16777215
                              arg_word: {(5)}
                              spids: [6454]
                            )
                          ]
                        )
                      ]
                    )
                  spids: [6233 6464]
                )
              ]
              negated: F
            )
          ]
          spids: [6189]
        )
      spids: [6184 6188]
    )
    (FuncDef
      name: download_release
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [6481 6485]
                        )
                      )
                    }
                  spids: [6479]
                )
              ]
              spids: [6477]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:numdebs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Pound '$#'))}
                  spids: [6492]
                )
              ]
              spids: [6490]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:countdebs) op:Equal rhs:{(0)} spids:[6501])]
              spids: [6499]
            )
            (C {(progress)} {($ VSub_Name '$countdebs')} {($ VSub_Name '$numdebs')} {(SIZEDEBS)} 
              {(DQ ('Finding package sizes'))}
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:totaldebs) op:Equal rhs:{(0)} spids:[6521])]
              spids: [6519]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:leftoverdebs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [6527]
                )
              ]
              spids: [6525]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:leftoverdebs)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(printf)} {(DQ ($ VSub_Name '$leftoverdebs'))})
                                  (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                  (C {(sort)} {(-u)})
                                  (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [6539 6569]
                      )
                    }
                  spids: [6538]
                )
              ]
              spids: [6538]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:numdebs)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(printf)} {(DQ ($ VSub_Name '$leftoverdebs'))})
                                  (C {(wc)} {(-w)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [6573 6583]
                      )
                    }
                  spids: [6572]
                )
              ]
              spids: [6572]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$countdebs'))} {(-ge)} 
                                  {(DQ ($ VSub_Name '$numdebs'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Break break>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 6616]
                        )
                      ]
                      spids: [16777215 6621]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: 
                            {
                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') (/binary-) 
                                ($ VSub_Name '$ARCH') (/Packages)
                              )
                            }
                          spids: [6627]
                        )
                      ]
                      spids: [6625]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pkgdest)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$TARGET') (/) 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                          {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                          {(DQ ($ VSub_Name '$path'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [6645 6669]
                                )
                              )
                            }
                          spids: [6641]
                        )
                      ]
                      spids: [6639]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                  {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Continue continue>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 6688]
                        )
                      ]
                      spids: [16777215 6693]
                    )
                    (C {(info)} {(CHECKINGSIZES)} {(DQ ('Checking component %s on %s...'))} 
                      {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$m1'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:leftoverdebs)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(get_package_sizes)} {(DQ ($ VSub_Name '$m1'))} 
                                          {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$leftoverdebs')}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [6717 6729]
                                )
                              )
                            }
                          spids: [6715]
                        )
                      ]
                      spids: [6715]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:countdebs)
                          op: Equal
                          rhs: 
                            {
                              (ArithSubPart
                                anode: 
                                  (ArithBinary
                                    op_id: Arith_Plus
                                    left: (ArithWord w:{($ VSub_Name '$countdebs')})
                                    right: 
                                      (ArithWord
                                        w: 
                                          {
                                            (BracedVarSub
                                              token: <VSub_Name leftoverdebs>
                                              suffix_op: 
                                                (StringUnary
                                                  op_id: VOp1_DPercent
                                                  arg_word: {(' *')}
                                                )
                                              spids: [6740 6744]
                                            )
                                          }
                                      )
                                  )
                                spids: [6735 6746]
                              )
                            }
                          spids: [6734]
                        )
                      ]
                      spids: [6734]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:leftoverdebs)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name leftoverdebs>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('* ')})
                                spids: [6750 6754]
                              )
                            }
                          spids: [6749]
                        )
                      ]
                      spids: [6749]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:totaldebs)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name leftoverdebs>
                                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                                spids: [6759 6763]
                              )
                            }
                          spids: [6758]
                        )
                      ]
                      spids: [6758]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:leftoverdebs)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name leftoverdebs>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('* ')})
                                spids: [6767 6771]
                              )
                            }
                          spids: [6766]
                        )
                      ]
                      spids: [6766]
                    )
                    (C {(progress)} {($ VSub_Name '$countdebs')} {($ VSub_Name '$numdebs')} {(SIZEDEBS)} 
                      {(DQ ('Finding package sizes'))}
                    )
                  ]
                  spids: [6596 6788]
                )
              spids: [6592 6594]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$countdebs'))} {(-ne)} 
                          {(DQ ($ VSub_Name '$numdebs'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(LEFTOVERDEBS)} {(DQ ("Couldn't find these debs: %s"))} 
                      {(DQ ($ VSub_Name '$leftoverdebs'))}
                    )
                  ]
                  spids: [16777215 6809]
                )
              ]
              spids: [16777215 6827]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:dloaddebs) op:Equal rhs:{(0)} spids:[6833])]
              spids: [6831]
            )
            (C {(progress)} {($ VSub_Name '$dloaddebs')} {($ VSub_Name '$totaldebs')} {(DOWNDEBS)} 
              {(DQ ('Downloading packages'))}
            )
            (SimpleCommand
              words: [{(Lit_Other ':')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                  spids: [6852]
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkgs_to_get)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [6858]
                )
              ]
              spids: [6858]
            )
            (ForEach
              iter_name: c
              iter_words: [{($ VSub_Name '$COMPONENTS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: 
                            {
                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') (/binary-) 
                                ($ VSub_Name '$ARCH') (/Packages)
                              )
                            }
                          spids: [6878]
                        )
                      ]
                      spids: [6876]
                    )
                    (ForEach
                      iter_name: m
                      iter_words: [{($ VSub_Name '$MIRRORS')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [6908 6932]
                                        )
                                      )
                                    }
                                  spids: [6904]
                                )
                              ]
                              spids: [6902]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                          {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 6951]
                                )
                              ]
                              spids: [16777215 6956]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgs_to_get)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(download_debs)}
                                                    {(DQ ($ VSub_Name '$m'))}
                                                    {(DQ ($ VSub_Name '$pkgdest'))}
                                                    {($ VSub_Name '$pkgs_to_get')}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op_id: Redir_GreatAnd
                                                      fd: 5
                                                      arg_word: {(1)}
                                                      spids: [6974]
                                                    )
                                                    (Redir
                                                      op_id: Redir_GreatAnd
                                                      fd: 1
                                                      arg_word: {(6)}
                                                      spids: [6977]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [6961 6979]
                                        )
                                      )
                                    }
                                  spids: [6959]
                                )
                              ]
                              spids: [6959]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$pkgs_to_get'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Break break>)
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 6996]
                                )
                              ]
                              spids: [16777215 7001]
                            )
                          ]
                          spids: [6899 7004]
                        )
                      redirects: [(Redir op_id:Redir_GreatAnd fd:6 arg_word:{(1)} spids:[7006])]
                      spids: [6895 6897]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$pkgs_to_get'))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Break break>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 7023]
                        )
                      ]
                      spids: [16777215 7028]
                    )
                  ]
                  spids: [6873 7031]
                )
              spids: [6869 6871]
            )
            (C {(progress)} {($ VSub_Name '$dloaddebs')} {($ VSub_Name '$totaldebs')} {(DOWNDEBS)} 
              {(DQ ('Downloading packages'))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$pkgs_to_get'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(COULDNTDLPKGS)} {(DQ ("Couldn't download packages: %s"))} 
                      {(DQ ($ VSub_Name '$pkgs_to_get'))}
                    )
                  ]
                  spids: [16777215 7064]
                )
              ]
              spids: [16777215 7082]
            )
          ]
          spids: [6474]
        )
      spids: [6469 6473]
    )
    (FuncDef
      name: download_main_indices
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [7099 7103]
                        )
                      )
                    }
                  spids: [7097]
                )
              ]
              spids: [7095]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:comp)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name USE_COMPONENTS))}
                  spids: [7109]
                )
              ]
              spids: [7107]
            )
            (C {(progress)} {(0)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))})
            (C {(progress_next)} {(100)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$comp'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:comp)
                              op: Equal
                              rhs: {(main)}
                              spids: [7151]
                            )
                          ]
                          spids: [7151]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 7149]
                )
              ]
              spids: [16777215 7155]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:COMPONENTS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} {($ VSub_Name '$comp')})
                                    (C {(tr)} {(SQ <'|'>)} {(SQ <' '>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [7160 7176]
                        )
                      )
                    }
                  spids: [7158]
                )
              ]
              spids: [7158]
            )
            (C {(export)} {(COMPONENTS)})
            (ForEach
              iter_name: m
              iter_words: [{($ VSub_Name '$MIRRORS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: c
                      iter_words: [{($ VSub_Name '$COMPONENTS')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [7212]
                                )
                              ]
                              spids: [7210]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [7230 7254]
                                        )
                                      )
                                    }
                                  spids: [7226]
                                )
                              ]
                              spids: [7224]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(in_path)} {(gunzip)})
                                            (C {(get)} 
                                              {(DQ ($ VSub_Name '$m') (/) (${ VSub_Name path) (.gz))} {(DQ (${ VSub_Name pkgdest) (.gz))}
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$pkgdest'))})
                                    (C {(gunzip)} {(DQ ($ VSub_Name '$pkgdest') (.gz))})
                                  ]
                                  spids: [16777215 7285]
                                )
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(get)} {(DQ ($ VSub_Name '$m') (/) ($ VSub_Name '$path'))} 
                                          {(DQ ($ VSub_Name '$pkgdest'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(C {(true)})]
                                  spids: [7305 7320]
                                )
                              ]
                              spids: [16777215 7326]
                            )
                          ]
                          spids: [7207 7329]
                        )
                      spids: [7203 7205]
                    )
                  ]
                  spids: [7195 7332]
                )
              spids: [7191 7193]
            )
            (C {(progress)} {(100)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))})
          ]
          spids: [7092]
        )
      spids: [7087 7091]
    )
    (FuncDef
      name: download_main
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [7362 7366]
                        )
                      )
                    }
                  spids: [7360]
                )
              ]
              spids: [7358]
            )
            (SimpleCommand
              words: [{(Lit_Other ':')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                  spids: [7372]
                )
              ]
            )
            (ForEach
              iter_name: p
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: c
                      iter_words: [{($ VSub_Name '$COMPONENTS')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:details)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [7405]
                                )
                              ]
                              spids: [7403]
                            )
                            (ForEach
                              iter_name: m
                              iter_words: [{($ VSub_Name '$MIRRORS')}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:path)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                                (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                              )
                                            }
                                          spids: [7424]
                                        )
                                      ]
                                      spids: [7422]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:pkgdest)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$TARGET') (/) 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                          {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                          {(DQ ($ VSub_Name '$path'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [7442 7466]
                                                )
                                              )
                                            }
                                          spids: [7438]
                                        )
                                      ]
                                      spids: [7436]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                                  {(DQ ($ VSub_Name '$pkgdest'))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [16777215 7485]
                                        )
                                      ]
                                      spids: [16777215 7490]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:details)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$PKGDETAILS')} {(PKGS)} 
                                                          {(DQ ($ VSub_Name '$m'))} {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_Name '$p'))}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [7495 7511]
                                                )
                                              )
                                            }
                                          spids: [7493]
                                        )
                                      ]
                                      spids: [7493]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                                  {(Lit_Other '=')} {(DQ ($ VSub_Name '$p') (' -'))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:details)
                                                  op: Equal
                                                  rhs: {(DQ )}
                                                  spids: [7536]
                                                )
                                              ]
                                              spids: [7536]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [16777215 7533]
                                        )
                                      ]
                                      spids: [16777215 7544]
                                    )
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:size)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name details>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('* ')}
                                                        )
                                                      spids: [7549 7553]
                                                    )
                                                  )
                                                }
                                              spids: [7547]
                                            )
                                          ]
                                          spids: [7547]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:details)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name details>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_Percent
                                                      arg_word: {(' *')}
                                                    )
                                                  spids: [7559 7563]
                                                )
                                              )
                                            }
                                          spids: [7557]
                                        )
                                      ]
                                      spids: [7557]
                                    )
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:checksum)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ 
                                                    (BracedVarSub
                                                      token: <VSub_Name details>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('* ')}
                                                        )
                                                      spids: [7569 7573]
                                                    )
                                                  )
                                                }
                                              spids: [7567]
                                            )
                                          ]
                                          spids: [7567]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:details)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (BracedVarSub
                                                  token: <VSub_Name details>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_Percent
                                                      arg_word: {(' *')}
                                                    )
                                                  spids: [7579 7583]
                                                )
                                              )
                                            }
                                          spids: [7577]
                                        )
                                      ]
                                      spids: [7577]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:debdest)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {($ VSub_Name '$DLDEST')} {(deb)} 
                                                          {($ VSub_Name '$details')}
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [7591 7597]
                                                )
                                              )
                                            }
                                          spids: [7589]
                                        )
                                      ]
                                      spids: [7587]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(get)} 
                                                  {
                                                    (DQ ($ VSub_Name '$m') (/) 
                                                      (BracedVarSub
                                                        token: <VSub_Name details>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_DPound
                                                            arg_word: {('* ')}
                                                          )
                                                        spids: [7608 7612]
                                                      )
                                                    )
                                                  } {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$debdest'))} {(DQ ($ VSub_Name '$checksum'))} 
                                                  {(DQ ($ VSub_Name '$size'))}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (SimpleCommand
                                              words: [
                                                {(echo)}
                                                {
                                                  (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$debdest'))
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_DGreat
                                                  fd: 16777215
                                                  arg_word: 
                                                    {($ VSub_Name '$TARGET') (/debootstrap/debpaths)}
                                                  spids: [7635]
                                                )
                                              ]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:details)
                                                  op: Equal
                                                  rhs: {(DQ (done))}
                                                  spids: [7646]
                                                )
                                              ]
                                              spids: [7646]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [16777215 7630]
                                        )
                                      ]
                                      spids: [16777215 7655]
                                    )
                                  ]
                                  spids: [7419 7658]
                                )
                              spids: [7415 7417]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                                  spids: [16777215 7678]
                                )
                              ]
                              spids: [16777215 7684]
                            )
                          ]
                          spids: [7400 7687]
                        )
                      spids: [7396 7398]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$details'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ (done))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(error)} {(1)} {(COULDNTDL)} {(DQ ("Couldn't download %s"))} 
                              {(DQ ($ VSub_Name '$p'))}
                            )
                          ]
                          spids: [16777215 7708]
                        )
                      ]
                      spids: [16777215 7726]
                    )
                  ]
                  spids: [7388 7729]
                )
              spids: [7382 7386]
            )
          ]
          spids: [7355]
        )
      spids: [7350 7354]
    )
    (FuncDef
      name: get_debs
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:field)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7748]
                )
              ]
              spids: [7746]
            )
            (C {(shift)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:m1) op:Equal spids:[7759])
                (assign_pair lhs:(LhsName name:c) op:Equal spids:[7761])
              ]
              spids: [7757]
            )
            (ForEach
              iter_name: m1
              iter_words: [{($ VSub_Name '$MIRRORS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (ForEach
                      iter_name: c
                      iter_words: [{($ VSub_Name '$COMPONENTS')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [7790]
                                )
                              ]
                              spids: [7788]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [7808 7832]
                                        )
                                      )
                                    }
                                  spids: [7804]
                                )
                              ]
                              spids: [7802]
                            )
                            (C {(echo)} 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(FIELD)} 
                                              {(DQ ($ VSub_Name '$field'))} {(DQ ($ VSub_Name '$m1'))} {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))}
                                            )
                                            (C {(sed)} {(SQ <'s/ .*//'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [7838 7868]
                                )
                              }
                            )
                          ]
                          spids: [7785 7871]
                        )
                      spids: [7781 7783]
                    )
                  ]
                  spids: [7773 7874]
                )
              spids: [7769 7771]
            )
          ]
          spids: [7743]
        )
      spids: [7738 7742]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:EXTRACTORS_SUPPORTED)
          op: Equal
          rhs: {(DQ ('dpkg-deb ar'))}
          spids: [7883]
        )
      ]
      spids: [7883]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:EXTRACT_DEB_TAR_OPTIONS)
          op: Equal
          rhs: {(EmptyPart)}
          spids: [7888]
        )
      ]
      spids: [7888]
    )
    (FuncDef
      name: extract_dpkg_deb_field
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7904]
                )
              ]
              spids: [7902]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:field)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [7912]
                )
              ]
              spids: [7910]
            )
            (C {(dpkg-deb)} {(-f)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$field'))})
          ]
          spids: [7899]
        )
      spids: [7894 7898]
    )
    (FuncDef
      name: extract_dpkg_deb_data
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7944]
                )
              ]
              spids: [7942]
            )
            (Pipeline
              children: [
                (C {(dpkg-deb)} {(--fsys-tarfile)} {(DQ ($ VSub_Name '$pkg'))})
                (C {(tar)} {($ VSub_Name '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)})
              ]
              negated: F
            )
          ]
          spids: [7939]
        )
      spids: [7934 7938]
    )
    (FuncDef
      name: extract_ar_deb_field
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [7985]
                )
              ]
              spids: [7983]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:field)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [7993]
                )
              ]
              spids: [7991]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tarball)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(ar)} {(-t)} {(DQ ($ VSub_Name '$pkg'))})
                                  (C {(grep)} {(DQ ('^control') (Lit_Other '\\') (.tar))})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [8002 8020]
                      )
                    }
                  spids: [8001]
                )
              ]
              spids: [7999]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$tarball'))}
              arms: [
                (case_arm
                  pat_list: [{(control.tar.gz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(zcat)}
                          spids: [8036]
                        )
                      ]
                      spids: [8036]
                    )
                  ]
                  spids: [8033 8034 8039 16777215]
                )
                (case_arm
                  pat_list: [{(control.tar.xz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(xzcat)}
                          spids: [8045]
                        )
                      ]
                      spids: [8045]
                    )
                  ]
                  spids: [8042 8043 8048 16777215]
                )
                (case_arm
                  pat_list: [{(control.tar)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(cat)}
                          spids: [8054]
                        )
                      ]
                      spids: [8054]
                    )
                  ]
                  spids: [8051 8052 8057 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(error)} {(1)} {(UNKNOWNCONTROLCOMP)} 
                      {(DQ ('Unknown compression type for %s in %s'))} {(DQ ($ VSub_Name '$tarball'))} {(DQ ($ VSub_Name '$pkg'))}
                    )
                  ]
                  spids: [8060 8061 8081 16777215]
                )
              ]
              spids: [8024 8030 8084]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(type)} {($ VSub_Name '$cat_cmd')}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [8094]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [8097]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(ar)} {(-p)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$tarball'))})
                        (C {($ VSub_Name '$cat_cmd')})
                        (SimpleCommand
                          words: [{(tar)} {(-O)} {(-xf)} {(-)} {(control)} {(./control)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [8135]
                            )
                          ]
                        )
                        (C {(grep)} {(-i)} {(DQ ('^') ($ VSub_Name '$field') (':'))})
                        (C {(sed)} {(-e)} {(SQ <'s/[^:]*: *//'>)})
                        (C {(head)} {(-n)} {(1)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [16777215 8101]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(UNPACKCMDUNVL)} 
                  {(DQ ('Extracting %s requires the %s command, which is not available'))} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$cat_cmd'))}
                )
              ]
              spids: [8170 8192]
            )
          ]
          spids: [7980]
        )
      spids: [7975 7979]
    )
    (FuncDef
      name: extract_ar_deb_data
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pkg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [8207]
                )
              ]
              spids: [8205]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tarball)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(ar)} {(-t)} {(DQ ($ VSub_Name '$pkg'))})
                                  (C {(grep)} {(DQ ('^data.tar'))})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [8216 8232]
                      )
                    }
                  spids: [8215]
                )
              ]
              spids: [8213]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$tarball'))}
              arms: [
                (case_arm
                  pat_list: [{(data.tar.gz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(zcat)}
                          spids: [8248]
                        )
                      ]
                      spids: [8248]
                    )
                  ]
                  spids: [8245 8246 8251 16777215]
                )
                (case_arm
                  pat_list: [{(data.tar.bz2)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(bzcat)}
                          spids: [8257]
                        )
                      ]
                      spids: [8257]
                    )
                  ]
                  spids: [8254 8255 8260 16777215]
                )
                (case_arm
                  pat_list: [{(data.tar.xz)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(xzcat)}
                          spids: [8266]
                        )
                      ]
                      spids: [8266]
                    )
                  ]
                  spids: [8263 8264 8269 16777215]
                )
                (case_arm
                  pat_list: [{(data.tar)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:cat_cmd)
                          op: Equal
                          rhs: {(cat)}
                          spids: [8275]
                        )
                      ]
                      spids: [8275]
                    )
                  ]
                  spids: [8272 8273 8278 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(error)} {(1)} {(UNKNOWNDATACOMP)} 
                      {(DQ ('Unknown compression type for %s in %s'))} {(DQ ($ VSub_Name '$tarball'))} {(DQ ($ VSub_Name '$pkg'))}
                    )
                  ]
                  spids: [8281 8282 8302 16777215]
                )
              ]
              spids: [8236 8242 8305]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(type)} {($ VSub_Name '$cat_cmd')}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [8315]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [8318]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Pipeline
                      children: [
                        (C {(ar)} {(-p)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$tarball'))})
                        (C {($ VSub_Name '$cat_cmd')})
                        (C {(tar)} {($ VSub_Name '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [16777215 8322]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(UNPACKCMDUNVL)} 
                  {(DQ ('Extracting %s requires the %s command, which is not available'))} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$cat_cmd'))}
                )
              ]
              spids: [8352 8374]
            )
          ]
          spids: [8202]
        )
      spids: [8197 8201]
    )
    (FuncDef
      name: valid_extractor
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:extractor)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [8389]
                )
              ]
              spids: [8387]
            )
            (ForEach
              iter_name: E
              iter_words: [{($ VSub_Name '$EXTRACTORS_SUPPORTED')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$extractor'))} {(Lit_Other '=')} 
                                  {(DQ ($ VSub_Name '$E'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                          spids: [16777215 8425]
                        )
                      ]
                      spids: [16777215 8433]
                    )
                  ]
                  spids: [8405 8436]
                )
              spids: [8401 8403]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [8384]
        )
      spids: [8379 8383]
    )
    (FuncDef
      name: choose_extractor
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:extractor) op:Equal spids:[8457])]
              spids: [8455]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:extractor)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$EXTRACTOR_OVERRIDE'))}
                          spids: [8477]
                        )
                      ]
                      spids: [8477]
                    )
                  ]
                  spids: [16777215 8474]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(type)} {(dpkg-deb)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [8489]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [8492]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:extractor)
                          op: Equal
                          rhs: {(DQ (dpkg-deb))}
                          spids: [8499]
                        )
                      ]
                      spids: [8499]
                    )
                  ]
                  spids: [8483 8496]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:extractor)
                      op: Equal
                      rhs: {(DQ (ar))}
                      spids: [8508]
                    )
                  ]
                  spids: [8508]
                )
              ]
              spids: [8505 8514]
            )
            (C {(info)} {(CHOSENEXTRACTOR)} {(DQ ('Chosen extractor for .deb packages: %s'))} 
              {(DQ ($ VSub_Name '$extractor'))}
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$extractor'))}
              arms: [
                (case_arm
                  pat_list: [{(dpkg-deb)}]
                  action: [
                    (FuncDef
                      name: extract_deb_field
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_dpkg_deb_field)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8549]
                        )
                      spids: [8544 8548]
                    )
                    (FuncDef
                      name: extract_deb_data
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_dpkg_deb_data)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8566]
                        )
                      spids: [8561 8565]
                    )
                  ]
                  spids: [8540 8541 8578 16777215]
                )
                (case_arm
                  pat_list: [{(ar)}]
                  action: [
                    (FuncDef
                      name: extract_deb_field
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_ar_deb_field)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8590]
                        )
                      spids: [8585 8589]
                    )
                    (FuncDef
                      name: extract_deb_data
                      body: 
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(extract_ar_deb_data)} {(DQ ($ VSub_At '$@'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [8607]
                        )
                      spids: [8602 8606]
                    )
                  ]
                  spids: [8581 8582 8619 16777215]
                )
              ]
              spids: [8531 8537 8622]
            )
          ]
          spids: [8452]
        )
      spids: [8447 8451]
    )
    (FuncDef
      name: extract
      body: 
        (BraceGroup
          children: [
            (Sentence
              child: 
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (C {(cd)} {(DQ ($ VSub_Name '$TARGET'))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:p)
                              op: Equal
                              rhs: {(0)}
                              spids: [8646]
                            )
                            (assign_pair
                              lhs: (LhsName name:cat_cmd)
                              op: Equal
                              spids: [8649]
                            )
                          ]
                          spids: [8644]
                        )
                        (ForEach
                          iter_name: pkg
                          iter_words: [
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(debfor)} {(DQ ($ VSub_At '$@'))})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [8658 8664]
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:p)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (ArithSubPart
                                              anode: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithWord w:{($ VSub_Name '$p')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                              spids: [8672 8679]
                                            )
                                          )
                                        }
                                      spids: [8670]
                                    )
                                  ]
                                  spids: [8670]
                                )
                                (C {(progress)} {(DQ ($ VSub_Name '$p'))} {(DQ ($ VSub_Pound '$#'))} 
                                  {(EXTRACTPKGS)} {(DQ ('Extracting packages'))}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:packagename)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {(DQ ($ VSub_Name '$pkg'))})
                                                        (C {(sed)} {(SQ <'s,^.*/,,;s,_.*$,,'>)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [8702 8716]
                                            )
                                          )
                                        }
                                      spids: [8700]
                                    )
                                  ]
                                  spids: [8700]
                                )
                                (C {(info)} {(EXTRACTING)} {(DQ ('Extracting %s...'))} 
                                  {(DQ ($ VSub_Name '$packagename'))}
                                )
                                (C {(extract_deb_data)} {(DQ (./) ($ VSub_Name '$pkg'))})
                              ]
                              spids: [8667 8741]
                            )
                          spids: [8657 8665]
                        )
                      ]
                    )
                  spids: [8634 8743]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [8632]
        )
      spids: [8627 8631]
    )
    (FuncDef
      name: in_target_nofail
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{($ VSub_Name '$CHROOT_CMD')} {(DQ ($ VSub_At '$@'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [8767]
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(true)})]
                  spids: [16777215 8771]
                )
              ]
              spids: [16777215 8777]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [8754]
        )
      spids: [8749 8753]
    )
    (FuncDef
      name: in_target_failmsg
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:code)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [8797]
                )
              ]
              spids: [8795]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:msg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [8805]
                )
              ]
              spids: [8803]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:arg)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$3'))}
                  spids: [8813]
                )
              ]
              spids: [8811]
            )
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>)
            (C {(shift)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {($ VSub_Name '$CHROOT_CMD')} {(DQ ($ VSub_At '$@'))})]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(warning)} {(DQ ($ VSub_Name '$code'))} {(DQ ($ VSub_Name '$msg'))} 
                      {(DQ ($ VSub_Name '$arg'))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:msg)
                          op: Equal
                          rhs: {(DQ ('See %s for details'))}
                          spids: [8861]
                        )
                      ]
                      spids: [8861]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} 
                                  {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:arg)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debootstrap.log))}
                                  spids: [8884]
                                )
                              ]
                              spids: [8884]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkg)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (C {(grep)} {(SQ <'^dpkg: error processing '>)} 
                                                      {
                                                        (DQ ($ VSub_Name '$TARGET') 
                                                          (/debootstrap/debootstrap.log)
                                                        )
                                                      }
                                                    )
                                                    (C {(head)} {(-n)} {(1)})
                                                    (C {(sed)} 
                                                      {
                                                        (SQ 
                                                          <
's/\\(error processing \\)\\(package \\|archive \\)/\\1/'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [8895 8936]
                                        )
                                      )
                                    }
                                  spids: [8893]
                                )
                              ]
                              spids: [8891]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$pkg'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:msg)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name '$msg') (' (possibly the package ') 
                                                ($ VSub_Name '$pkg') (' is at fault)')
                                              )
                                            }
                                          spids: [8956]
                                        )
                                      ]
                                      spids: [8956]
                                    )
                                  ]
                                  spids: [16777215 8953]
                                )
                              ]
                              spids: [16777215 8965]
                            )
                          ]
                          spids: [16777215 8881]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:arg)
                              op: Equal
                              rhs: {(DQ ('the log'))}
                              spids: [8971]
                            )
                          ]
                          spids: [8971]
                        )
                      ]
                      spids: [8968 8977]
                    )
                    (C {(warning)} {(DQ ($ VSub_Name '$code'))} {(DQ ($ VSub_Name '$msg'))} 
                      {(DQ ($ VSub_Name '$arg'))}
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 8839]
                )
              ]
              spids: [16777215 9000]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [8792]
        )
      spids: [8787 8791]
    )
    (FuncDef
      name: in_target
      body: 
        (BraceGroup
          children: [
            (C {(in_target_failmsg)} {(IN_TARGET_FAIL)} {(DQ ('Failure trying to run: %s'))} 
              {(DQ ($ VSub_Name '$CHROOT_CMD') (' ') ($ VSub_Star '$*'))} {(DQ ($ VSub_At '$@'))}
            )
          ]
          spids: [9015]
        )
      spids: [9010 9014]
    )
    (FuncDef
      name: conditional_cp
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                          {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(Lit_Other '[')} {(-L)} {(DQ ($ VSub_Number '$1'))} 
                                      {(Lit_Other ']')}
                                    )
                                    (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} 
                                      {(Lit_Other ']')}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(cat)} {(DQ ($ VSub_Number '$1'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))}
                                  spids: [9105]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 9096]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(cp)} {(-a)} {(DQ ($ VSub_Number '$1'))} 
                              {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))}
                            )
                          ]
                          spids: [9113 9126]
                        )
                      ]
                      spids: [16777215 9144]
                    )
                  ]
                  spids: [16777215 9068]
                )
              ]
              spids: [16777215 9147]
            )
          ]
          spids: [9048]
        )
      spids: [9043 9047]
    )
    (FuncDef
      name: mv_invalid_to
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [9162]
                )
              ]
              spids: [9160]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (Pipeline
                                  children: [
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name m>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_Pound
                                                arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)}
                                              )
                                            spids: [9174 9180]
                                          )
                                        )
                                      }
                                    )
                                    (C {(tr)} {(SQ </>)} {(SQ <_>)})
                                    (C {(sed)} {(SQ <'s/_*//'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [9170 9202]
                        )
                      )
                    }
                  spids: [9168]
                )
              ]
              spids: [9168]
            )
            (Subshell
              child: 
                (CommandList
                  children: [
                    (C {(cd)} {(DQ ($ VSub_Name '$TARGET') (/) ($ VSub_Name '$APTSTATE') (/lists))})
                    (ForEach
                      iter_name: a
                      iter_words: [{(debootstrap.invalid_) (Lit_Other '*')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (C {(mv)} {(DQ ($ VSub_Name '$a'))} 
                              {
                                (DQ (${ VSub_Name m) (_) 
                                  (BracedVarSub
                                    token: <VSub_Name a>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*_')})
                                    spids: [9241 9245]
                                  )
                                )
                              }
                            )
                          ]
                          spids: [9227 9249]
                        )
                      spids: [9222 9225]
                    )
                  ]
                )
              spids: [9206 9252]
            )
          ]
          spids: [9157]
        )
      spids: [9152 9156]
    )
    (FuncDef
      name: setup_apt_sources
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/etc/apt))})
            (ForEach
              iter_name: m
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:cs) op:Equal rhs:{(DQ )} spids:[9291])]
                      spids: [9289]
                    )
                    (ForEach
                      iter_name: c
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name COMPONENTS>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                              )
                            spids: [9302 9306]
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [9314]
                                )
                              ]
                              spids: [9312]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [9332 9356]
                                        )
                                      )
                                    }
                                  spids: [9328]
                                )
                              ]
                              spids: [9326]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$pkgdest'))} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:cs)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Name '$cs') (' ') ($ VSub_Name '$c'))}
                                              spids: [9375]
                                            )
                                          ]
                                          spids: [9375]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 9373]
                                )
                              ]
                              spids: [16777215 9383]
                            )
                          ]
                          spids: [9309 9386]
                        )
                      spids: [9301 9307]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$cs'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (C {(echo)} 
                                  {
                                    (DQ ('deb ') ($ VSub_Name '$m') (' ') ($ VSub_Name '$SUITE') 
                                      ($ VSub_Name '$cs')
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 9406]
                        )
                      ]
                      spids: [16777215 9419]
                    )
                  ]
                  spids: [9286 9422]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))}
                  spids: [9424]
                )
              ]
              spids: [9280 9284]
            )
          ]
          spids: [9262]
        )
      spids: [9257 9261]
    )
    (FuncDef
      name: setup_etc
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/etc))})
            (C {(conditional_cp)} {(/etc/resolv.conf)} {(DQ ($ VSub_Name '$TARGET'))})
            (C {(conditional_cp)} {(/etc/hostname)} {(DQ ($ VSub_Name '$TARGET'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$DLDEST'))} {(Lit_Other '=')} 
                              {(apt_dest)} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                              {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(setup_apt_sources)} {(DQ ('http://debootstrap.invalid/'))})]
                  spids: [16777215 9502]
                )
              ]
              spids: [16777215 9512]
            )
          ]
          spids: [9439]
        )
      spids: [9434 9438]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:UMOUNT_DIRS) op:Equal rhs:{(EmptyPart)} spids:[9517])]
      spids: [9517]
    )
    (FuncDef
      name: umount_exit_function
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:realdir) op:Equal spids:[9530])]
              spids: [9528]
            )
            (ForEach
              iter_name: dir
              iter_words: [{($ VSub_Name '$UMOUNT_DIRS')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:realdir)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(in_target_nofail)} {(readlink)} {(-f)} 
                                          {(DQ ($ VSub_Name '$dir'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [9547 9557]
                                )
                              )
                            }
                          spids: [9545]
                        )
                      ]
                      spids: [9545]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$realdir'))} {(Lit_Other ']')})
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (Subshell
                          child: 
                            (CommandList
                              children: [
                                (Sentence
                                  child: (C {(cd)} {(/)})
                                  terminator: <Op_Semi ';'>
                                )
                                (C {(umount)} 
                                  {
                                    (DQ ($ VSub_Name '$TARGET') (/) 
                                      (BracedVarSub
                                        token: <VSub_Name realdir>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Pound
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [9587 9591]
                                      )
                                    )
                                  }
                                )
                              ]
                            )
                          spids: [9574 9594]
                        )
                        (C {(true)})
                      ]
                    )
                  ]
                  spids: [9542 9601]
                )
              spids: [9538 9540]
            )
          ]
          spids: [9525]
        )
      spids: [9520 9524]
    )
    (FuncDef
      name: umount_on_exit
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$UMOUNT_DIRS'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UMOUNT_DIRS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$UMOUNT_DIRS') (' ') ($ VSub_Number '$1'))}
                          spids: [9628]
                        )
                      ]
                      spids: [9628]
                    )
                  ]
                  spids: [16777215 9625]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:UMOUNT_DIRS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [9639]
                    )
                  ]
                  spids: [9639]
                )
                (C {(on_exit)} {(umount_exit_function)})
              ]
              spids: [9636 9650]
            )
          ]
          spids: [9611]
        )
      spids: [9606 9610]
    )
    (FuncDef
      name: clear_mtab
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-h)} 
                              {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))})]
                  spids: [16777215 9692]
                )
              ]
              spids: [16777215 9705]
            )
          ]
          spids: [9660]
        )
      spids: [9655 9659]
    )
    (FuncDef
      name: setup_proc
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (freebsd) (Lit_Other '*')}]
                  action: [
                    (C {(umount_on_exit)} {(/dev)})
                    (C {(umount_on_exit)} {(/proc)})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/proc))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [9750]
                            )
                          ]
                        )
                        (C {(true)})
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$HOST_OS'))} {(Lit_Other '=')} 
                                  {(kfreebsd)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(in_target)} {(mount)} {(-t)} {(linprocfs)} {(proc)} {(/proc)})]
                          spids: [16777215 9773]
                        )
                      ]
                      else_action: [
                        (C {(mount)} {(-t)} {(linprocfs)} {(proc)} {($ VSub_Name '$TARGET') (/proc)})
                      ]
                      spids: [9789 9804]
                    )
                  ]
                  spids: [9727 9730 9807 16777215]
                )
                (case_arm
                  pat_list: [{(hurd) (Lit_Other '*')}]
                  action: [
                    (C {(settrans)} {(-a)} {(DQ ($ VSub_Name '$TARGET') (/dev))} {(/hurd/firmlink)} 
                      {(/dev)}
                    )
                    (C {(settrans)} {(-a)} {(DQ ($ VSub_Name '$TARGET') (/servers))} {(/hurd/firmlink)} 
                      {(/servers)}
                    )
                    (C {(settrans)} {(-a)} {(DQ ($ VSub_Name '$TARGET') (/proc))} {(/hurd/firmlink)} 
                      {(/proc)}
                    )
                  ]
                  spids: [9810 9812 9861 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(umount_on_exit)} {(/dev/pts)})
                    (C {(umount_on_exit)} {(/dev/shm)})
                    (C {(umount_on_exit)} {(/proc/bus/usb)})
                    (C {(umount_on_exit)} {(/proc)})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/proc))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 2
                              arg_word: {(/dev/null)}
                              spids: [9895]
                            )
                          ]
                        )
                        (C {(true)})
                      ]
                    )
                    (C {(in_target)} {(mount)} {(-t)} {(proc)} {(proc)} {(/proc)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$TARGET') (/sys))} 
                                      {(Lit_Other ']')}
                                    )
                                    (SimpleCommand
                                      words: [
                                        {(grep)}
                                        {(-q)}
                                        {(SQ <'[[:space:]]sysfs'>)}
                                        {(/proc/filesystems)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [9943]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(umount_on_exit)} {(/sys)})
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (SimpleCommand
                                  words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/sys))}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 2
                                      arg_word: {(/dev/null)}
                                      spids: [9962]
                                    )
                                  ]
                                )
                                (C {(true)})
                              ]
                            )
                            (C {(in_target)} {(mount)} {(-t)} {(sysfs)} {(sysfs)} {(/sys)})
                          ]
                          spids: [16777215 9947]
                        )
                      ]
                      spids: [16777215 9983]
                    )
                    (C {(on_exit)} {(clear_mtab)})
                  ]
                  spids: [9864 9865 9991 16777215]
                )
              ]
              spids: [9718 9724 9994]
            )
            (C {(umount_on_exit)} {(/lib/init/rw)})
          ]
          spids: [9715]
        )
      spids: [9710 9714]
    )
    (FuncDef
      name: setup_proc_fakechroot
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$TARGET') (/proc))})
            (C {(ln)} {(-s)} {(/proc)} {(DQ ($ VSub_Name '$TARGET'))})
          ]
          spids: [10009]
        )
      spids: [10004 10008]
    )
    (FuncDef
      name: setup_devices
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(doing_variant)} {(fakechroot)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(setup_devices_fakechroot)})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 10053]
                )
              ]
              spids: [16777215 10064]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(kfreebsd) (Lit_Other '*')}]
                  spids: [10077 10079 10082 16777215]
                )
                (case_arm pat_list:[{(freebsd)}] spids:[10085 10086 10089 16777215])
                (case_arm
                  pat_list: [{(hurd) (Lit_Other '*')}]
                  spids: [10092 10094 10097 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(setup_devices_simple)})]
                  spids: [10100 10101 10107 16777215]
                )
              ]
              spids: [10068 10074 10110]
            )
          ]
          spids: [10043]
        )
      spids: [10038 10042]
    )
    (FuncDef
      name: setup_dynamic_devices
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(doing_variant)} {(fakechroot)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [16777215 10133]
                )
              ]
              spids: [16777215 10141]
            )
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(kfreebsd) (Lit_Other '*')}]
                  action: [(C {(in_target)} {(mount)} {(-t)} {(devfs)} {(devfs)} {(/dev)})]
                  spids: [10154 10156 10171 16777215]
                )
                (case_arm
                  pat_list: [{(freebsd)}]
                  action: [(C {(mount)} {(-t)} {(devfs)} {(devfs)} {($ VSub_Name '$TARGET') (/dev)})]
                  spids: [10174 10175 10189 16777215]
                )
                (case_arm
                  pat_list: [{(hurd) (Lit_Other '*')}]
                  action: [(C {(in_target)} {(/usr/lib/hurd/setup-translators)} {(-k)})]
                  spids: [10192 10194 10207 16777215]
                )
              ]
              spids: [10145 10151 10210]
            )
          ]
          spids: [10123]
        )
      spids: [10118 10122]
    )
    (FuncDef
      name: setup_devices_simple
      body: 
        (BraceGroup
          children: [
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/null)} {(c)} {(1)} {(3)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/zero)} {(c)} {(1)} {(5)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/full)} {(c)} {(1)} {(7)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/random)} {(c)} {(1)} {(8)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/urandom)} {(c)} {(1)} {(9)})
            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/tty)} {(c)} {(5)} {(0)})
            (C {(mkdir)} {($ VSub_Name '$TARGET') (/dev/pts/)} {($ VSub_Name '$TARGET') (/dev/shm/)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (C {(mknod)} {(-m)} {(666)} {($ VSub_Name '$TARGET') (/dev/ptmx)} {(c)} {(5)} 
                              {(2)}
                            )
                          ]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(warning)} {(MKNOD)} 
                      {
                        (DQ 
                          (
'Could not create /dev/ptmx, falling back to symlink. This chroot will require /dev/pts mounted with ptmxmode=666'
                          )
                        )
                      }
                    )
                    (C {(ln)} {(-s)} {(pts/ptmx)} {($ VSub_Name '$TARGET') (/dev/ptmx)})
                  ]
                  spids: [16777215 10364]
                )
              ]
              spids: [16777215 10386]
            )
            (C {(ln)} {(-s)} {(/proc/self/fd)} {($ VSub_Name '$TARGET') (/dev/fd)})
            (C {(ln)} {(-s)} {(/proc/self/fd/0)} {($ VSub_Name '$TARGET') (/dev/stdin)})
            (C {(ln)} {(-s)} {(/proc/self/fd/1)} {($ VSub_Name '$TARGET') (/dev/stdout)})
            (C {(ln)} {(-s)} {(/proc/self/fd/2)} {($ VSub_Name '$TARGET') (/dev/stderr)})
          ]
          spids: [10220]
        )
      spids: [10215 10219]
    )
    (FuncDef
      name: setup_devices_fakechroot
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$TARGET') (/dev))})
            (C {(ln)} {(-s)} {(/dev)} {(DQ ($ VSub_Name '$TARGET'))})
          ]
          spids: [10436]
        )
      spids: [10431 10435]
    )
    (FuncDef
      name: setup_dselect_method
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Number '$1'))}
              arms: [
                (case_arm
                  pat_list: [{(apt)}]
                  action: [
                    (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg))})
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('apt apt'))}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/cmethopt))}
                          spids: [10499]
                        )
                      ]
                    )
                    (C {(chmod)} {(644)} {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/cmethopt))})
                  ]
                  spids: [10479 10480 10517 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(error)} {(1)} {(UNKNOWNDSELECT)} {(DQ ('unknown dselect method'))})]
                  spids: [10520 10521 10535 16777215]
                )
              ]
              spids: [10470 10476 10538]
            )
          ]
          spids: [10467]
        )
      spids: [10462 10466]
    )
    (FuncDef
      name: setup_merged_usr
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$MERGED_USR'))} {(Lit_Other '=')} 
                          {(DQ (no))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 10591]
                )
              ]
              spids: [16777215 10598]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:link_dir) op:Equal spids:[10604])]
              spids: [10602]
            )
            (Case
              to_match: {($ VSub_Name '$ARCH')}
              arms: [
                (case_arm
                  pat_list: [{(hurd-) (Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})]
                  spids: [10614 10616 10622 16777215]
                )
                (case_arm
                  pat_list: [{(amd64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64 libx32'))}
                          spids: [10628]
                        )
                      ]
                      spids: [10628]
                    )
                  ]
                  spids: [10625 10626 10633 16777215]
                )
                (case_arm
                  pat_list: [{(i386)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib64 libx32'))}
                          spids: [10639]
                        )
                      ]
                      spids: [10639]
                    )
                  ]
                  spids: [10636 10637 10644 16777215]
                )
                (case_arm
                  pat_list: [{(mips)} {(mipsel)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64'))}
                          spids: [10653]
                        )
                      ]
                      spids: [10653]
                    )
                  ]
                  spids: [10647 10650 10658 16777215]
                )
                (case_arm
                  pat_list: [{(mips64) (Lit_Other '*')} {(mipsn32) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64 libo32'))}
                          spids: [10669]
                        )
                      ]
                      spids: [10669]
                    )
                  ]
                  spids: [10661 10666 10674 16777215]
                )
                (case_arm
                  pat_list: [{(powerpc)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib64))}
                          spids: [10680]
                        )
                      ]
                      spids: [10680]
                    )
                  ]
                  spids: [10677 10678 10685 16777215]
                )
                (case_arm
                  pat_list: [{(ppc64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64'))}
                          spids: [10691]
                        )
                      ]
                      spids: [10691]
                    )
                  ]
                  spids: [10688 10689 10696 16777215]
                )
                (case_arm
                  pat_list: [{(ppc64el)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib64))}
                          spids: [10702]
                        )
                      ]
                      spids: [10702]
                    )
                  ]
                  spids: [10699 10700 10707 16777215]
                )
                (case_arm
                  pat_list: [{(s390x)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib32))}
                          spids: [10713]
                        )
                      ]
                      spids: [10713]
                    )
                  ]
                  spids: [10710 10711 10718 16777215]
                )
                (case_arm
                  pat_list: [{(sparc)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ (lib64))}
                          spids: [10724]
                        )
                      ]
                      spids: [10724]
                    )
                  ]
                  spids: [10721 10722 10729 16777215]
                )
                (case_arm
                  pat_list: [{(sparc64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64'))}
                          spids: [10735]
                        )
                      ]
                      spids: [10735]
                    )
                  ]
                  spids: [10732 10733 10740 16777215]
                )
                (case_arm
                  pat_list: [{(x32)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:link_dir)
                          op: Equal
                          rhs: {(DQ ('lib32 lib64 libx32'))}
                          spids: [10746]
                        )
                      ]
                      spids: [10746]
                    )
                  ]
                  spids: [10743 10744 10751 16777215]
                )
              ]
              spids: [10607 10611 10754]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:link_dir)
                  op: Equal
                  rhs: {(DQ ('bin sbin lib ') ($ VSub_Name '$link_dir'))}
                  spids: [10757]
                )
              ]
              spids: [10757]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:dir) op:Equal spids:[10767])]
              spids: [10765]
            )
            (ForEach
              iter_name: dir
              iter_words: [{($ VSub_Name '$link_dir')}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(ln)} {(-s)} {(usr/) ($ VSub_Name '$dir')} 
                      {($ VSub_Name '$TARGET') (/) ($ VSub_Name '$dir')}
                    )
                    (C {(mkdir)} {(-p)} {($ VSub_Name '$TARGET') (/usr/) ($ VSub_Name '$dir')})
                  ]
                  spids: [10779 10803]
                )
              spids: [10775 10777]
            )
          ]
          spids: [10571]
        )
      spids: [10567 10570]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(in_path)} {(perl)}) terminator:<Op_Semi ';'>)]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGDETAILS)
                  op: Equal
                  rhs: {(pkgdetails_perl)}
                  spids: [10832]
                )
              ]
              spids: [10832]
            )
            (FuncDef
              name: pkgdetails_field
              body: 
                (BraceGroup
                  children: [
                    (C {(perl)} {(-le)} 
                      {
                        (SQ <'\n'> 
                          <
'$unique = shift @ARGV; $field = lc(shift @ARGV); $mirror = shift @ARGV;\n'
                          > <'%fields = map { $_, 0 } @ARGV;\n'> <'$prevpkg = "";\n'> <'while (<STDIN>) {\n'> <'\tchomp;\n'> 
                          <'\tnext if (/^ /);\n'> <'\tif (/^([^:]*:)\\s*(.*)$/) {\n'> <'\t\t$f = lc($1); $v = $2;\n'> <'\t\tif ($f eq "package:") {\n'> 
                          <'\t\t\t$last = 0;\n'> <'\t\t\t$pkg = $v;\n'> <'\t\t\tif ($pkg ne $prevpkg) {\n'> 
                          <'\t\t\t\tprint $output if defined $output;\n'> <'\t\t\t\tif ($unique && defined $output_val) {\n'> <'\t\t\t\t\tdelete $fields{$output_val};\n'> 
                          <'\t\t\t\t\t$last = 1 unless keys %fields;\n'> <'\t\t\t\t}\n'> <'\t\t\t\t$prevpkg = $pkg;\n'> <'\t\t\t}\n'> <'\t\t\tundef $output;\n'> 
                          <'\t\t\tundef $output_val;\n'> <'\t\t\tlast if $last;\n'> <'\t\t}\n'> <'\t\t$ver = $v if ($f eq "version:");\n'> 
                          <'\t\t$arc = $v if ($f eq "architecture:");\n'> <'\t\t$fil = $v if ($f eq "filename:");\n'> 
                          <
'\t\t$chk = $v if (lc $f eq lc($ENV{DEBOOTSTRAP_CHECKSUM_FIELD}).":");\n'
                          > <'\t\t$siz = $v if ($f eq "size:");\n'> <'\t\t$val = $v if ($f eq $field);\n'> <'\t} elsif (/^$/) {\n'> 
                          <'\t\tif (defined $val && defined $fields{$val}) {\n'> <'\t\t\t$output = sprintf "%s %s %s %s %s %s %s",\n'> 
                          <'\t\t\t $pkg, $ver, $arc, $mirror, $fil, $chk, $siz;\n'> <'\t\t\t$output_val = $val;\n'> <'\t\t}\n'> <'\t\tundef $val;\n'> <'\t}\n'> <'}\n'> 
                          <'print $output if defined $output;\n'> <'delete $fields{$output_val} if $unique && defined $output_val;\n'> <'for $v (keys %fields) {\n'> 
                          <'\tprintf ("%s -\\n", $v) if ($unique);\n'> <'}\n'>
                        )
                      } {(DQ ($ VSub_At '$@'))}
                    )
                  ]
                  spids: [10842]
                )
              spids: [10837 10841]
            )
            (FuncDef
              name: pkgdetails_perl
              body: 
                (BraceGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ ('WGET%'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(perl)} {(-e)} 
                              {
                                (SQ <'\n'> <'$v = 0;\n'> <'$allow_percentage = 0;\n'> 
                                  <'while (read STDIN, $x, 1) {\n'> <'\tif ($x =~ m/\\s/) {\n'> <'\t\t$allow_percentage = 1;\n'> 
                                  <'\t} elsif ($allow_percentage and $x =~ m/\\d/) {\n'> <'\t\t$v *= 10;\n'> <'\t\t$v += $x;\n'> <'\t} elsif ($allow_percentage and $x eq "%") {\n'> 
                                  <
'\t\tprintf "P: %d %d%s\\n", int($v / 100.0 * ($ARGV[1] - $ARGV[0]) + $ARGV[0]), $ARGV[2], ($#ARGV == 3 ? " $ARGV[3]" : "");\n'
                                  > <'\t\t$v = 0;\n'> <'\t} else {\n'> <'\t\t$v = 0;\n'> <'\t\t$allow_percentage = 0;\n'> <'\t}\n'> <'}'>
                                )
                              } {(DQ ($ VSub_At '$@'))}
                            )
                          ]
                          spids: [16777215 10934]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (GETDEPS))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:pkgdest)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$2'))}
                                      spids: [10992]
                                    )
                                  ]
                                  spids: [10990]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (Pipeline
                              children: [
                                (SimpleCommand
                                  words: [
                                    {(perl)}
                                    {(-e)}
                                    {
                                      (SQ <'\n'> <'$prevpkg = "";\n'> <'@d = ();\n'> 
                                        <'while (<STDIN>) {\n'> <'\tchomp;\n'> <'\tif (/^Package: (.*)$/) {\n'> <'\t\t$pkg = $1;\n'> <'\t\tif ($pkg ne $prevpkg) {\n'> 
                                        <'\t\t\tfor my $d (@d) {\n'> <'\t\t\t\tprint "$d\\n";\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\t$prevpkg = $1;\n'> <'\t\t@d = ();\n'> 
                                        <'\t}\n'> <'\t$in = 1 if (grep {$_ eq $pkg} @ARGV);\n'> <'\t$in = 0 if (/^$/);\n'> 
                                        <
'\tif ($in and (/^Depends: (.*)$/ or /^Pre-Depends: (.*)$/)) {\n'
                                        > <'\t\tfor $d (split /\\s*,\\s*/, $1) {\n'> <'\t\t\t$d =~ s/\\s*[|].*$//;\n'> 
                                        <'\t\t\t$d =~ s/\\s*[(].*[)]\\s*//;\n'> <'\t\t\t$d =~ s/:.*//;\n'> <'\t\t\tpush @d, $d;\n'> <'\t\t}\n'> <'\t}\n'> <'}\n'> <'for my $d (@d) {\n'> 
                                        <'\tprint "$d\\n";\n'> <'}'>
                                      )
                                    }
                                    {(DQ ($ VSub_At '$@'))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Less
                                      fd: 16777215
                                      arg_word: {(DQ ($ VSub_Name '$pkgdest'))}
                                      spids: [11040]
                                    )
                                  ]
                                )
                                (C {(sort)})
                                (C {(uniq)})
                              ]
                              negated: F
                            )
                          ]
                          spids: [10970 10987]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (PKGS))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:m)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2'))}
                                  spids: [11080]
                                )
                              ]
                              spids: [11078]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:p)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$3'))}
                                  spids: [11088]
                                )
                              ]
                              spids: [11086]
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (SimpleCommand
                              words: [
                                {(pkgdetails_field)}
                                {(1)}
                                {(Package) (Lit_Other ':')}
                                {(DQ ($ VSub_Name '$m'))}
                                {(DQ ($ VSub_At '$@'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$p'))}
                                  spids: [11118]
                                )
                              ]
                            )
                          ]
                          spids: [11058 11075]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (FIELD))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$2'))}
                                  spids: [11147]
                                )
                              ]
                              spids: [11145]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:m)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$3'))}
                                  spids: [11155]
                                )
                              ]
                              spids: [11153]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:p)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Number '$4'))}
                                  spids: [11163]
                                )
                              ]
                              spids: [11161]
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (SimpleCommand
                              words: [
                                {(pkgdetails_field)}
                                {(0)}
                                {(DQ ($ VSub_Name '$f'))}
                                {(DQ ($ VSub_Name '$m'))}
                                {(DQ ($ VSub_At '$@'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$p'))}
                                  spids: [11197]
                                )
                              ]
                            )
                          ]
                          spids: [11125 11142]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} 
                                  {(DQ (STANZAS))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:pkgdest)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Number '$2'))}
                                      spids: [11226]
                                    )
                                  ]
                                  spids: [11224]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(shift)})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(shift)})
                            (SimpleCommand
                              words: [
                                {(perl)}
                                {(-e)}
                                {
                                  (SQ <'\n'> <'my $accum = "";\n'> <'while (<STDIN>) {\n'> 
                                    <'\t$accum .= $_;\n'> <'\t$in = 1 if (/^Package: (.*)$/ && grep {$_ eq $1} @ARGV);\n'> <'\tif ($in and /^$/) {\n'> 
                                    <'\t\tprint $accum;\n'> <'\t\tif (substr($accum, -1) != "\\n") {\n'> <'\t\t\tprint "\\n\\n";\n'> 
                                    <'\t\t} elsif (substr($accum, -2, 1) != "\\n") {\n'> <'\t\t\tprint "\\n";\n'> <'\t\t}\n'> <'\t\t$in = 0;\n'> <'\t}\n'> <'\t$accum = "" if /^$/;\n'> <'}'>
                                  )
                                }
                                {(DQ ($ VSub_At '$@'))}
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Less
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$pkgdest'))}
                                  spids: [11261]
                                )
                              ]
                            )
                          ]
                          spids: [11204 11221]
                        )
                      ]
                      spids: [16777215 11271]
                    )
                  ]
                  spids: [10914]
                )
              spids: [10909 10913]
            )
          ]
          spids: [16777215 10829]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ (/usr/lib/debootstrap/pkgdetails))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGDETAILS)
                  op: Equal
                  rhs: {(DQ (/usr/lib/debootstrap/pkgdetails))}
                  spids: [11292]
                )
              ]
              spids: [11292]
            )
          ]
          spids: [11276 11289]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Name '$DEBOOTSTRAP_DIR') (/pkgdetails))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGDETAILS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$DEBOOTSTRAP_DIR') (/pkgdetails))}
                  spids: [11314]
                )
              ]
              spids: [11314]
            )
          ]
          spids: [11297 11311]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:PKGDETAILS) op:Equal rhs:{(DQ )} spids:[11323])]
          spids: [11323]
        )
      ]
      spids: [11320 11327]
    )
    (FuncDef
      name: resolve_deps
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [11346 11350]
                        )
                      )
                    }
                  spids: [11344]
                )
              ]
              spids: [11342]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PKGS)
                  op: Equal
                  rhs: {(DQ ($ VSub_Star '$*'))}
                  spids: [11357]
                )
              ]
              spids: [11355]
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ALLPKGS)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$PKGS'))}
                      spids: [11365]
                    )
                  ]
                  spids: [11363]
                )
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ALLPKGS2)
                      op: Equal
                      rhs: {(DQ )}
                      spids: [11374]
                    )
                  ]
                  spids: [11372]
                )
              terminator: <Op_Semi ';'>
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PKGS'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NEWPKGS)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [11402]
                        )
                      ]
                      spids: [11400]
                    )
                    (ForEach
                      iter_name: c
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name COMPONENTS>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                              )
                            spids: [11413 11417]
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [11425]
                                )
                              ]
                              spids: [11423]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11443 11467]
                                        )
                                      )
                                    }
                                  spids: [11439]
                                )
                              ]
                              spids: [11437]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NEWPKGS)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$NEWPKGS') (' ') 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(GETDEPS)} 
                                                  {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$PKGS')}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11475 11487]
                                        )
                                      )
                                    }
                                  spids: [11471]
                                )
                              ]
                              spids: [11471]
                            )
                          ]
                          spids: [11420 11491]
                        )
                      spids: [11412 11418]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PKGS)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} 
                                            {
                                              (DQ ($ VSub_Name '$PKGS') (' ') ($ VSub_Name '$NEWPKGS'))
                                            }
                                          )
                                          (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                          (C {(sort)})
                                          (C {(uniq)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [11495 11523]
                              )
                            }
                          spids: [11494]
                        )
                      ]
                      spids: [11494]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:REALPKGS)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [11528]
                        )
                      ]
                      spids: [11526]
                    )
                    (ForEach
                      iter_name: c
                      iter_words: [
                        {
                          (BracedVarSub
                            token: <VSub_Name COMPONENTS>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonHyphen
                                arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                              )
                            spids: [11539 11543]
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:path)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') 
                                        (/binary-) ($ VSub_Name '$ARCH') (/Packages)
                                      )
                                    }
                                  spids: [11551]
                                )
                              ]
                              spids: [11549]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:pkgdest)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$TARGET') (/) 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                                  {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                                  {(DQ ($ VSub_Name '$path'))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11569 11593]
                                        )
                                      )
                                    }
                                  spids: [11565]
                                )
                              ]
                              spids: [11563]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:REALPKGS)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_Name '$REALPKGS') (' ') 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(PKGS)} 
                                                      {(REAL)} {(DQ ($ VSub_Name '$pkgdest'))} {($ VSub_Name '$PKGS')}
                                                    )
                                                    (C {(sed)} {(-n)} {(SQ <'s/ .*REAL.*$//p'>)})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [11601 11625]
                                        )
                                      )
                                    }
                                  spids: [11597]
                                )
                              ]
                              spids: [11597]
                            )
                          ]
                          spids: [11546 11629]
                        )
                      spids: [11538 11544]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PKGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$REALPKGS'))}
                          spids: [11632]
                        )
                      ]
                      spids: [11632]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ALLPKGS2)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} 
                                            {
                                              (DQ ($ VSub_Name '$PKGS') (' ') ($ VSub_Name '$ALLPKGS'))
                                            }
                                          )
                                          (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                          (C {(sort)})
                                          (C {(uniq)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [11639 11667]
                              )
                            }
                          spids: [11638]
                        )
                      ]
                      spids: [11638]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PKGS)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_Name '$ALLPKGS2'))} 
                                        {(DQ ($ VSub_Name '$ALLPKGS'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [11671 11681]
                              )
                            }
                          spids: [11670]
                        )
                      ]
                      spids: [11670]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ALLPKGS)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$ALLPKGS2'))}
                          spids: [11684]
                        )
                      ]
                      spids: [11684]
                    )
                  ]
                  spids: [11397 11690]
                )
            )
            (C {(echo)} {($ VSub_Name '$ALLPKGS')})
          ]
          spids: [11339]
        )
      spids: [11334 11338]
    )
    (FuncDef
      name: setup_available
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:m1)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MIRRORS>
                          suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                          spids: [11712 11716]
                        )
                      )
                    }
                  spids: [11710]
                )
              ]
              spids: [11708]
            )
            (ForEach
              iter_name: c
              iter_words: [
                {
                  (BracedVarSub
                    token: <VSub_Name COMPONENTS>
                    suffix_op: 
                      (StringUnary
                        op_id: VTest_ColonHyphen
                        arg_word: {($ VSub_Name '$USE_COMPONENTS')}
                      )
                    spids: [11727 11731]
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:path)
                          op: Equal
                          rhs: 
                            {
                              (DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$c') (/binary-) 
                                ($ VSub_Name '$ARCH') (/Packages)
                              )
                            }
                          spids: [11739]
                        )
                      ]
                      spids: [11737]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pkgdest)
                          op: Equal
                          rhs: 
                            {
                              (DQ ($ VSub_Name '$TARGET') (/) 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {($ VSub_Name '$DLDEST')} {(pkg)} 
                                          {(DQ ($ VSub_Name '$SUITE'))} {(DQ ($ VSub_Name '$c'))} {(DQ ($ VSub_Name '$ARCH'))} {(DQ ($ VSub_Name '$m1'))} 
                                          {(DQ ($ VSub_Name '$path'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [11757 11781]
                                )
                              )
                            }
                          spids: [11753]
                        )
                      ]
                      spids: [11751]
                    )
                    (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(STANZAS)} {(DQ ($ VSub_Name '$pkgdest'))} 
                      {(DQ ($ VSub_At '$@'))}
                    )
                  ]
                  spids: [11734 11808]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/available))}
                  spids: [11810]
                )
              ]
              spids: [11726 11732]
            )
            (Pipeline
              children: [
                (ForEach
                  iter_name: pkg
                  do_arg_iter: T
                  body: 
                    (DoGroup
                      children: [(C {(echo)} {(DQ ($ VSub_Name '$pkg') (' install'))})]
                      spids: [11823 11834]
                    )
                  spids: [16777215 16777215]
                )
                (C {(in_target)} {(dpkg)} {(--set-selections)})
              ]
              negated: F
            )
          ]
          spids: [11705]
        )
      spids: [11700 11704]
    )
    (FuncDef
      name: get_next_predep
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:stanza)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(in_target_nofail)} {(dpkg)} {(--predep-package)})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [11859 11865]
                        )
                      )
                    }
                  spids: [11857]
                )
              ]
              spids: [11855]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$stanza'))} {(Lit_Other ']')})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ ($ VSub_Name '$stanza'))})
                (C {(grep)} {(SQ <'^Package:'>)})
                (C {(sed)} {(SQ <'s/^Package://; s/^ *//'>)})
              ]
              negated: F
            )
          ]
          spids: [11852]
        )
      spids: [11847 11851]
    )
    (FuncDef
      name: check_sane_mount
      body: 
        (BraceGroup
          children: [
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Number '$1'))})
            (Case
              to_match: {(DQ ($ VSub_Name '$HOST_OS'))}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (freebsd) (Lit_Other '*')} {(hurd) (Lit_Other '*')}]
                  spids: [11949 11955 11958 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(mknod)} {(DQ ($ VSub_Number '$1') (/test-dev-null))} {(c)} {(1)} {(3)})
                        (ControlFlow
                          token: <ControlFlow_Return return>
                          arg_word: {(1)}
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (SimpleCommand
                                      words: [{(echo)} {(test)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(DQ ($ VSub_Number '$1') (/test-dev-null))}
                                          spids: [11993]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 12001]
                        )
                      ]
                      spids: [16777215 12019]
                    )
                    (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))})
                  ]
                  spids: [11961 11962 12032 16777215]
                )
              ]
              spids: [11940 11946 12035]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:SH) op:Equal rhs:{(/bin/sh)} spids:[12039])]
              spids: [12039]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(Lit_Other '[')} {(-x)} {($ VSub_Name '$SH')} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:SH)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(which)} {(sh)})])
                            left_token: <Left_Backtick '`'>
                            spids: [12054 12058]
                          )
                        }
                      spids: [12053]
                    )
                  ]
                  spids: [12053]
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Number '$1') (/test-exec))}
                  spids: [12064]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: {(DQ ('#! ') ($ VSub_Name '$SH') ('\n') (':\n'))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: T
                  spids: [12071]
                )
              ]
            )
            (C {(chmod)} {(Lit_Other '+') (x)} {(DQ ($ VSub_Number '$1') (/test-exec))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(DQ ($ VSub_Number '$1') (/test-exec))})]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 12101]
                )
              ]
              spids: [16777215 12119]
            )
            (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [11927]
        )
      spids: [11922 11926]
    )
    (FuncDef
      name: read_gpg_status
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:badsig)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [12148]
                )
              ]
              spids: [12148]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:unkkey)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [12151]
                )
              ]
              spids: [12151]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:validsig)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [12154]
                )
              ]
              spids: [12154]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(read)} {(prefix)} {(keyword)} {(keyid)} {(rest)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$prefix'))} {(Lit_Other '=')} 
                          {(SQ <'[GNUPG:]'>)} {(Lit_Other ']')}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                    )
                    (Case
                      to_match: {($ VSub_Name '$keyword')}
                      arms: [
                        (case_arm
                          pat_list: [{(BADSIG)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:badsig)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$keyid'))}
                                  spids: [12202]
                                )
                              ]
                              spids: [12202]
                            )
                          ]
                          spids: [12199 12200 12207 16777215]
                        )
                        (case_arm
                          pat_list: [{(NO_PUBKEY)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:unkkey)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$keyid'))}
                                  spids: [12213]
                                )
                              ]
                              spids: [12213]
                            )
                          ]
                          spids: [12210 12211 12218 16777215]
                        )
                        (case_arm
                          pat_list: [{(VALIDSIG)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:validsig)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$keyid'))}
                                  spids: [12224]
                                )
                              ]
                              spids: [12224]
                            )
                          ]
                          spids: [12221 12222 12229 16777215]
                        )
                      ]
                      spids: [12192 12196 12232]
                    )
                  ]
                  spids: [12170 12235]
                )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$validsig'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(info)} {(VALIDRELSIG)} {(DQ ('Valid Release signature (key id %s)'))} 
                      {(DQ ($ VSub_Name '$validsig'))}
                    )
                  ]
                  spids: [16777215 12249]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$badsig'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(BADRELSIG)} {(DQ ('Invalid Release signature (key id %s)'))} 
                      {(DQ ($ VSub_Name '$badsig'))}
                    )
                  ]
                  spids: [12265 12276]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$unkkey'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(UNKNOWNRELSIG)} 
                      {(DQ ('Release signed by unknown key (key id %s)'))} {(DQ ($ VSub_Name '$unkkey'))}
                    )
                  ]
                  spids: [12294 12305]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Error executing gpgv to check Release signature'))})
              ]
              spids: [12323 12337]
            )
          ]
          spids: [12145]
        )
      spids: [12140 12144]
    )
    (FuncDef
      name: without
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (Sentence
                          child: 
                            (Pipeline
                              children: [
                                (C {(echo)} {($ VSub_Number '$1')})
                                (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                (C {(sort)})
                                (C {(uniq)})
                              ]
                              negated: F
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Number '$2')} {($ VSub_Number '$2')})
                            (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  spids: [12354 12398]
                )
                (C {(sort)})
                (C {(uniq)} {(-u)})
                (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)})
              ]
              negated: F
            )
            (C {(echo)})
          ]
          spids: [12347]
        )
      spids: [12342 12346]
    )
    (FuncDef
      name: repeatn
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:n)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [12441]
                )
              ]
              spids: [12439]
            )
            (C {(shift)})
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$n'))} {(-gt)} {(0)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [(Sentence child:(C {(DQ ($ VSub_At '$@'))}) terminator:<Op_Semi ';'>)]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [16777215 12475]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:n)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (ArithSubPart
                                      anode: 
                                        (ArithBinary
                                          op_id: Arith_Minus
                                          left: (ArithWord w:{($ VSub_Name '$n')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                      spids: [12486 12495]
                                    )
                                  )
                                }
                              spids: [12484]
                            )
                          ]
                          spids: [12484]
                        )
                        (C {(sleep)} {(1)})
                      ]
                      spids: [12481 12504]
                    )
                  ]
                  spids: [12465 12507]
                )
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$n'))} {(-eq)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 12525]
                )
              ]
              spids: [16777215 12532]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [12436]
        )
      spids: [12431 12435]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:N_EXIT_THINGS) op:Equal rhs:{(0)} spids:[12542])]
      spids: [12542]
    )
    (FuncDef
      name: exit_function
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:n) op:Equal rhs:{(0)} spids:[12555])]
              spids: [12553]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$n'))} {(-lt)} 
                      {(DQ ($ VSub_Name '$N_EXIT_THINGS'))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Subshell
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (SimpleCommand
                              words: [
                                {(eval)}
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(eval)} {(echo)} 
                                            {(EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                              (Lit_LBrace '{') (EXIT_THING_) ($ VSub_Name '$n') (Lit_RBrace '}')
                                            }
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [12582 12592]
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [12594]
                                )
                              ]
                            )
                            (C {(true)})
                          ]
                        )
                      spids: [12579 12600]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:n)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (ArithSubPart
                                  anode: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithWord w:{($ VSub_Name '$n')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                  spids: [12605 12614]
                                )
                              )
                            }
                          spids: [12603]
                        )
                      ]
                      spids: [12603]
                    )
                  ]
                  spids: [12576 12618]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:N_EXIT_THINGS) op:Equal rhs:{(0)} spids:[12621])]
              spids: [12621]
            )
          ]
          spids: [12550]
        )
      spids: [12545 12549]
    )
    (C {(trap)} {(DQ (exit_function))} {(0)})
    (C {(trap)} {(DQ ('exit 129'))} {(1)})
    (C {(trap)} 
      {
        (DQ ('error 130 INTERRUPTED ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
          ('Interrupt caught ... exiting') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
        )
      } {(2)}
    )
    (C {(trap)} {(DQ ('exit 131'))} {(3)})
    (C {(trap)} {(DQ ('exit 143'))} {(15)})
    (FuncDef
      name: on_exit
      body: 
        (BraceGroup
          children: [
            (C {(eval)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (C {(echo)} 
                          {(EXIT_THING_) (${ VSub_Name N_EXIT_THINGS) (Lit_Other '=') 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar '\\"'>
                            ) ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                          }
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                  spids: [12681 12692]
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:N_EXIT_THINGS)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (ArithSubPart
                          anode: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithWord w:{($ VSub_Name '$N_EXIT_THINGS')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [12697 12706]
                        )
                      )
                    }
                  spids: [12695]
                )
              ]
              spids: [12695]
            )
          ]
          spids: [12676]
        )
      spids: [12671 12675]
    )
    (FuncDef
      name: install_fakechroot_tools
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$VARIANT'))} {(Lit_Other '=')} 
                          {(DQ (fakechroot))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(export)} 
                      {(Lit_VarLike 'PATH=') (/usr/sbin) (Lit_Other ':') (/sbin) (Lit_Other ':') 
                        ($ VSub_Name '$PATH')
                      }
                    )
                  ]
                  spids: [16777215 12741]
                )
              ]
              spids: [16777215 12754]
            )
            (C {(mv)} {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))} 
              {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig.REAL))}
            )
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('#!/bin/sh\n') ('echo\n') ('echo ') 
                    (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('Warning: Fake ldconfig called, doing nothing') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))}
                  spids: [12783]
                )
              ]
            )
            (C {(chmod)} {(755)} {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))})
            (SimpleCommand
              words: [{(echo)} {(DQ ('/sbin/ldconfig\n') ('/sbin/ldconfig.REAL\n') (fakechroot))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/diversions))}
                  spids: [12811]
                )
              ]
            )
            (C {(mv)} {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))} 
              {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd.REAL))}
            )
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  fd: 16777215
                  body: 
                    {('#!/usr/bin/perl\n') ('\n') ('# fakeldd\n') ('#\n') 
                      ('# Replacement for ldd with usage of objdump\n') ('#\n') ('# (c) 2003-2005 Piotr Roszatycki <dexter@debian.org>, BSD\n') ('\n') ('\n') 
                      ('my %libs = ();\n') ('\n') ('my $status = 0;\n') ('my $dynamic = 0;\n') ('my $biarch = 0;\n') ('\n') 
                      ('my $ldlinuxsodir = "/lib";\n') ('my @ld_library_path = qw(/usr/lib /lib);\n') ('\n') ('\n') ('sub ldso($) {\n') ('\tmy ($lib) = @_;\n') 
                      ('\tmy @files = ();\n') ('\n') ('\tif ($lib =~ /^\\//) {\n') ('\t    $libs{$lib} = $lib;\n') ('\t    push @files, $lib;\n') 
                      ('\t} else {\n') ('\t    foreach my $ld_path (@ld_library_path) {\n') ('\t\tnext unless -f "$ld_path/$lib";\n') 
                      ('\t\tmy $badformat = 0;\n') ('\t\topen OBJDUMP, "objdump -p $ld_path/$lib 2>/dev/null |";\n') 
                      ('\t \twhile (my $line = <OBJDUMP>) {\n') ('\t\t    if ($line =~ /file format (\\S*)$/) {\n') ('\t\t\t\t$badformat = 1 unless $format eq $1;\n') 
                      ('\t\t\t\tlast;\n') ('\t\t    }\n') ('\t\t}\n') ('\t\tclose OBJDUMP;\n') ('\t\tnext if $badformat;\n') 
                      ('\t\t$libs{$lib} = "$ld_path/$lib";\n') ('\t\tpush @files, "$ld_path/$lib";\n') ('\t    }\n') ('\t    objdump(@files);\n') ('\t}\n') ('}\n') 
                      ('\n') ('\n') ('sub objdump(@) {\n') ('\tmy (@files) = @_;\n') ('\tmy @libs = ();\n') ('\n') 
                      ('\tforeach my $file (@files) {\n') ('\t    open OBJDUMP, "objdump -p $file 2>/dev/null |";\n') ('\t    while (my $line = <OBJDUMP>) {\n') 
                      ('\t\t$line =~ s/^\\s+//;\n') ('\t\tmy @f = split (/\\s+/, $line);\n') ('\t\tif ($line =~ /file format (\\S*)$/) {\n') 
                      ('\t\t    if (not $format) {\n') ('\t\t\t$format = $1;\n') ('\t\t\tif ($unamearch eq "x86_64" and $format eq "elf32-i386") {\n') 
                      ('\t\t\t    my $link = readlink "/lib/ld-linux.so.2";\n') ('\t\t\t    if ($link =~ /^\\/emul\\/ia32-linux\\//) {\n') 
                      ('\t\t\t\t$ld_library_path[-2] = "/emul/ia32-linux/usr/lib";\n') ('\t\t\t\t$ld_library_path[-1] = "/emul/ia32-linux/lib";\n') ('\t\t\t    }\n') 
                      (
'\t\t\t} elsif ($unamearch =~ /^(sparc|sparc64)$/ and $format eq "elf64-sparc") {\n'
                      ) ('\t\t\t    $ldlinuxsodir = "/lib64";\n') ('\t\t\t    $ld_library_path[-2] = "/usr/lib64";\n') 
                      ('\t\t\t    $ld_library_path[-1] = "/lib64";\n') ('\t\t\t}\n') ('\t\t    } else {\n') ('\t\t\tnext unless $format eq $1;\n') ('\t\t    }\n') ('\t\t}\n') 
                      ('\t\tif (not $dynamic and $f[0] eq "Dynamic") {\n') ('\t\t    $dynamic = 1;\n') ('\t\t}\n') ('\t\tnext unless $f[0] eq "NEEDED";\n') 
                      ('\t\tif ($f[1] =~ /^ld-linux(\\.|-)/) {\n') ('\t\t    $f[1] = "$ldlinuxsodir/" . $f[1];\n') ('\t\t}\n') ('\t\tif (not defined $libs{$f[1]}) {\n') 
                      ('\t\t    $libs{$f[1]} = undef;\n') ('\t\t    push @libs, $f[1];\n') ('\t\t}\n') ('\t    }\n') ('\t    close OBJDUMP;\n') ('\t}\n') ('\n') 
                      ('\tforeach my $lib (@libs) {\n') ('\t    ldso($lib);\n') ('\t}\n') ('}\n') ('\n') ('\n') ('if ($#ARGV < 0) {\n') 
                      ('\tprint STDERR "fakeldd: missing file arguments\\n";\n') ('\texit 1;\n') ('}\n') ('\n') ('while ($ARGV[0] =~ /^-/) {\n') ('\tmy $arg = $ARGV[0];\n') 
                      ('\tshift @ARGV;\n') ('\tlast if $arg eq "--";\n') ('}\n') ('\n') ('open LD_SO_CONF, "/etc/ld.so.conf";\n') 
                      ('while ($line = <LD_SO_CONF>) {\n') ('\tchomp $line;\n') ('\tunshift @ld_library_path, $line;\n') ('}\n') ('close LD_SO_CONF;\n') ('\n') 
                      ('unshift @ld_library_path, split(/:/, $ENV{LD_LIBRARY_PATH});\n') ('\n') ('$unamearch = `/bin/uname -m`;\n') ('chomp $unamearch;\n') ('\n') 
                      ('foreach my $file (@ARGV) {\n') ('\tmy $address;\n') ('\t%libs = ();\n') ('\t$dynamic = 0;\n') ('\n') ('\tif ($#ARGV > 0) {\n') 
                      ('\t\tprint "$file:\\n";\n') ('\t}\n') ('\n') ('\tif (not -f $file) {\n') 
                      ('\t\tprint STDERR "ldd: $file: No such file or directory\\n";\n') ('\t\t$status = 1;\n') ('\t\tnext;\n') ('\t}\n') ('\n') ('\tobjdump($file);\n') ('\n') 
                      ('\tif ($dynamic == 0) {\n') ('\t\tprint "\\tnot a dynamic executable\\n";\n') ('\t\t$status = 1;\n') 
                      ('\t} elsif (scalar %libs eq "0") {\n') ('\t\tprint "\\tstatically linked\\n";\n') ('\t}\n') ('\n') ('\tif ($format =~ /^elf64-/) {\n') 
                      ('\t\t$address = "0x0000000000000000";\n') ('\t} else {\n') ('\t\t$address = "0x00000000";\n') ('\t}\n') ('\n') ('\tforeach $lib (keys %libs) {\n') 
                      ('\t\tif ($libs{$lib}) {\n') ('\t\t\tprintf "\\t%s => %s (%s)\\n", $lib, $libs{$lib}, $address;\n') ('\t\t} else {\n') 
                      ('\t\t\tprintf "\\t%s => not found\\n", $lib;\n') ('\t\t}\n') ('\t}\n') ('}\n') ('\n') ('exit $status;\n')
                    }
                  do_expansion: False
                  here_end: END
                  was_filled: T
                  spids: [12835]
                )
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))}
                  spids: [12841]
                )
              ]
            )
            (C {(chmod)} {(755)} {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))})
            (SimpleCommand
              words: [{(echo)} {(DQ ('/usr/bin/ldd\n') ('/usr/bin/ldd.REAL\n') (fakechroot))}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/diversions))}
                  spids: [12869]
                )
              ]
            )
          ]
          spids: [12721]
        )
      spids: [12716 12720]
    )
  ]
)