(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: False 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: [-1 94] ) ] spids: [-1 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: False 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:-1 arg_word:{(4)} spids:[231])] spids: [190 229] ) ] spids: [-1 187] ) ] else_action: [ (Subshell child: (C {(printf)} { (DQ ('E: ') ($ VSub_Name '$fmt') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ) } {(DQ ($ VSub_At '$@'))} ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[252])] spids: [238 250] ) ] spids: [235 256] ) (C {(exit)} {($ 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: [280] ) ] spids: [278] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:fmt) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [288] ) ] spids: [286] ) (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: False body: (DoGroup children: [ (Sentence child: (C {(echo)} {(DQ ('WA: ') ($ VSub_Name '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [334 344] ) spids: [328 332] ) (C {(echo)} {(DQ ('WF: ') ($ VSub_Name '$fmt'))}) ] ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[355])] spids: [314 353] ) ] spids: [-1 311] ) ] else_action: [ (SimpleCommand words: [ {(printf)} { (DQ ('W: ') ($ VSub_Name '$fmt') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ) } {(DQ ($ VSub_At '$@'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[374])] ) ] spids: [359 378] ) ] spids: [271] ) spids: [266 270] ) (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: [397] ) ] spids: [395] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:fmt) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [405] ) ] spids: [403] ) (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: False body: (DoGroup children: [ (Sentence child: (C {(echo)} {(DQ ('IA: ') ($ VSub_Name '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [451 461] ) spids: [445 449] ) (C {(echo)} {(DQ ('IF: ') ($ VSub_Name '$fmt'))}) ] ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[472])] spids: [431 470] ) ] spids: [-1 428] ) ] else_action: [ (SimpleCommand words: [ {(printf)} { (DQ ('I: ') ($ VSub_Name '$fmt') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>) ) } {(DQ ($ VSub_At '$@'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(4)} spids:[491])] ) ] spids: [476 495] ) ] spids: [388] ) spids: [383 387] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PROGRESS_NOW) op:Equal rhs:{(0)} spids:[500])] spids: [500] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PROGRESS_END) op:Equal rhs:{(0)} spids:[503])] spids: [503] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PROGRESS_NEXT) op:Equal rhs:{(DQ )} spids:[506])] spids: [506] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PROGRESS_WHAT) op:Equal rhs:{(DQ )} spids:[510])] spids: [510] ) (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: [523] ) ] spids: [523] ) ] spids: [520] ) spids: [515 519] ) (FuncDef name: wgetprogress body: (BraceGroup children: [ (AndOr 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: [551] ) ] spids: [551] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[559])] spids: [557] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$USE_DEBIANINSTALLER_INTERACTION'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PROGRESS_NEXT'))} {(Lit_Other ']')}) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (SimpleCommand words: [{(wget)} {(DQ ($ VSub_At '$@'))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [593] ) (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [596] ) ] ) (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:-1 arg_word:{(3)} spids:[613])] ) ] negated: False ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {($ VSub_QMark '$?')} spids: [617] ) ] spids: [617] ) ] spids: [-1 584] ) ] 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: [634] ) ] spids: [634] ) ] spids: [621 638] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_Name '$ret')}) ] spids: [536] ) spids: [531 535] ) (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: [662] ) ] spids: [660] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:end) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [670] ) ] spids: [668] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [678] ) ] spids: [676] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:fmt) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [686] ) ] spids: [684] ) (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: [718] ) ] spids: [718] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROGRESS_END) op: Equal rhs: {(DQ ($ VSub_Name '$end'))} spids: [724] ) ] spids: [724] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROGRESS_NEXT) op: Equal rhs: {(DQ )} spids: [730] ) ] spids: [730] ) (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: False body: (DoGroup children: [ (Sentence child: (C {(echo)} {(DQ ('PA: ') ($ VSub_Name '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [759 769] ) spids: [753 757] ) (C {(echo)} {(DQ ('PF: ') ($ VSub_Name '$fmt'))}) ] ) redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(3)} spids:[780])] spids: [735 778] ) ] spids: [-1 715] ) ] spids: [-1 784] ) ] spids: [653] ) spids: [648 652] ) (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: [803] ) ] spids: [801] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:end) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [811] ) ] spids: [809] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [819] ) ] spids: [817] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:desc) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [827] ) ] spids: [825] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(DQ ($ VSub_Number '$5'))} spids: [835] ) ] spids: [833] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:expect) op:Equal rhs:{(SQ )} spids:[843])] spids: [841] ) (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: [865] ) ] spids: [865] ) ] spids: [-1 862] ) (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: [887] ) ] spids: [887] ) ] spids: [869 884] ) ] spids: [-1 891] ) (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: [910 914] ) } ) ) spids: [905 916] ) ) } spids: [903] ) ] spids: [903] ) ] spids: [900] ) spids: [895 899] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exitcode) op:Equal rhs:{(0)} spids:[924])] spids: [924] ) (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: [962] ) ] spids: [962] ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [-1 959] ) ] spids: [-1 971] ) (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$qstate'))} {(Lit_Other '=')} {(DQ ($ VSub_Name '$expect'))} {(Lit_Other ']')} ) (ControlFlow token:<ControlFlow_Continue continue>) ] op_id: Op_DPipe ) (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: [1037 1041] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(unpacked)} spids: [1045] ) ] spids: [1045] ) ] spids: [1000 1001 1049 -1] ) (case_arm pat_list: [{(unpacked)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(half-installed)} spids: [1056] ) ] spids: [1056] ) ] spids: [1052 1053 1060 -1] ) (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: [1100 1104] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(installed)} spids: [1108] ) ] spids: [1108] ) ] spids: [1063 1064 1112 -1] ) (case_arm pat_list: [{(installed)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expect) op: Equal rhs: {(half-configured)} spids: [1119] ) ] spids: [1119] ) ] spids: [1115 1116 1123 -1] ) ] spids: [993 997 1126] ) ] spids: [939 1129] ) ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$exitcode')} ) ] spids: [794] ) spids: [789 793] ) (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: [1151] ) ] spids: [1151] ) ] spids: [1148] ) spids: [1143 1147] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FINDDEBS_NEEDS_INDICES) op: Equal rhs: {(false)} spids: [1159] ) ] spids: [1159] ) (FuncDef name: finddebs_style body: (BraceGroup children: [ (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list:[{(hardcoded)}] spids:[117911801183-1]) (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: [1190] ) ] spids: [1190] ) ] spids: [1186 1187 1194 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(BADFINDDEBS)} {(DQ ('unknown finddebs style'))})] spids: [1197 1198 1212 -1] ) ] spids: [1170 1176 1215] ) ] spids: [1167] ) spids: [1162 1166] ) (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: [-1 1243] ) ] spids: [-1 1268] ) ] spids: [1225] ) spids: [1220 1224] ) (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: [1314] ) ] spids: [1314] ) ] spids: [-1 1311] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:APTSTATE) op: Equal rhs: {(var/lib/apt)} spids: [1321] ) ] spids: [1321] ) ] spids: [1318 1325] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DLDEST) op: Equal rhs: {(apt_dest)} spids: [1328] ) ] spids: [1328] ) (C {(export)} {(APTSTATE)} {(DLDEST)} {(DEBFOR)}) ] spids: [1290 1291 1341 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(BADDLOAD)} {(DQ ('unknown download style'))})] spids: [1344 1345 1359 -1] ) ] spids: [1281 1287 1362] ) ] spids: [1278] ) spids: [1273 1277] ) (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: [1407] ) ] spids: [1407] ) ] spids: [-1 1404] ) (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 children: [ (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$DEF_HTTPS_MIRROR'))} {(Lit_Other ']')} ) (AndOr children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$USER_MIRROR'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$FORCE_KEYRING'))} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) 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: [1486] ) ] spids: [1486] ) ] spids: [-1 1466] ) ] 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: [-1 1521] ) ] spids: [-1 1535] ) ] spids: [1492 1538] ) ] spids: [1413 1426] ) ] spids: [-1 1541] ) ] spids: [-1 1388] ) ] spids: [-1 1544] ) ] spids: [1372] ) spids: [1367 1371] ) (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: [-1 1578] ) ] spids: [-1 1585] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr 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 ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) terminator: <Op_Semi ';'> ) ] spids: [-1 1620] ) ] spids: [-1 1627] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1558] ) spids: [1553 1557] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SUPPORTED_VARIANTS) op: Equal rhs: {(DQ (-))} spids: [1637] ) ] spids: [1637] ) (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: [1650] ) ] spids: [1650] ) (ForEach iter_name: v iter_words: [{($ VSub_Star '$*')}] do_arg_iter: False 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: [-1 1677] ) ] spids: [-1 1684] ) ] spids: [1665 1687] ) spids: [1661 1663] ) (C {(error)} {(1)} {(UNSUPPVARIANT)} {(DQ ('unsupported variant'))}) ] spids: [1647] ) spids: [1642 1646] ) (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: [1728] ) ] spids: [1728] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOWNLOAD_DEBS) op: Equal rhs: {(download_release)} spids: [1732] ) ] spids: [1732] ) ] spids: [1724 1725 1736 -1] ) (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: [1743] ) ] spids: [1743] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOWNLOAD_DEBS) op: Equal rhs: {(download_main)} spids: [1747] ) ] spids: [1747] ) ] spids: [1739 1740 1751 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(BADMIRROR)} {(DQ ('unknown mirror style'))})] spids: [1754 1755 1769 -1] ) ] spids: [1715 1721 1772] ) (C {(export)} {(DOWNLOAD_INDICES)}) (C {(export)} {(DOWNLOAD_DEBS)}) ] spids: [1712] ) spids: [1707 1711] ) (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: [1795] ) ] spids: [1795] ) (C {(export)} {(DEBOOTSTRAP_CHECKSUM_FIELD)}) ] spids: [1792] ) spids: [1787 1791] ) (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: [1820] ) ] spids: [1818] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:expsize) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [1828] ) ] spids: [1826] ) (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: -1 arg_word: {(DQ ($ VSub_Number '$1'))} spids: [1868] ) ] ) (C {(sed)} {(SQ <'s/ .*$//'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1865 1881] ) } spids: [1864] ) ] spids: [1864] ) ] spids: [-1 1861] ) (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: -1 arg_word: {(DQ ($ VSub_Number '$1'))} spids: [1898] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [1895 1903] ) } spids: [1894] ) ] spids: [1894] ) ] spids: [1884 1891] ) ] else_action: [(C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Cannot check md5sum'))})] spids: [1906 1920] ) ] spids: [-1 1851] ) ] 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: -1 arg_word: {(DQ ($ VSub_Number '$1'))} spids: [1950] ) ] ) (C {(sed)} {(SQ <'s/ .*$//'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1943 1963] ) } spids: [1942] ) ] spids: [1942] ) ] spids: [-1 1939] ) (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: -1 arg_word: {(DQ ($ VSub_Number '$1'))} spids: [1988] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [1982 1993] ) } spids: [1981] ) ] spids: [1981] ) ] spids: [1966 1978] ) ] else_action: [ (C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Cannot check sha') (${ VSub_Name SHA_SIZE) (sum))} ) ] spids: [1996 2014] ) ] spids: [1923 2017] ) (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: -1 arg_word: {(DQ ($ VSub_Number '$1'))} spids: [2026] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [2021 2031] ) } spids: [2020] ) ] spids: [2020] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr 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 ']')} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [-1 2068] ) ] spids: [-1 2076] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1811] ) spids: [1806 1810] ) (FuncDef name: get body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:displayname) op:Equal spids:[2104])] spids: [2102] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:versionname) op:Equal spids:[2109])] spids: [2107] ) (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: [2117 2121] ) ) } {(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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2139 2153] ) ) } spids: [2137] ) ] spids: [2137] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2159 2189] ) ) } spids: [2157] ) ] spids: [2157] ) ] spids: [-1 2134] ) ] 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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2198 2212] ) ) } spids: [2196] ) ] spids: [2196] ) ] spids: [2193 2216] ) (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: [-1 2249] ) (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: [2257 2272] ) ] 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: [-1 2321] ) ] else_action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})] spids: [2329 2341] ) ] spids: [2284 2344] ) ] spids: [-1 2233] ) ] spids: [-1 2347] ) (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: [-1 2369] ) ] spids: [-1 2383] ) (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:[2407])] spids: [2405] ) (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: [2430] ) ] spids: [2430] ) terminator: <Op_Semi ';'> ) ] spids: [-1 2428] ) ] spids: [-1 2434] ) (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: [2442] ) ] spids: [2442] ) 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: [2470 2475] ) (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: [2484 2491] ) } spids: [2483] ) ] spids: [2483] ) terminator: <Op_Semi ';'> ) ] spids: [2461 2494] ) ) (C {(sort)} {(-n)}) (C {(sed)} {(SQ <'s/.* //'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2441 2509] ) ) } spids: [2439] ) ] spids: [2437] ) ] spids: [-1 2402] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:order) op:Equal rhs:{(3)} spids:[2518])] spids: [2516] ) ] spids: [2513 2522] ) (ForEach iter_name: a iter_words: [{($ VSub_Name '$order')}] do_arg_iter: False 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: [2541 2550] ) ) } spids: [2539] ) ] spids: [2537] ) (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: [2565 2572] ) (Lit_RBrace '}') } ) ] ) left_token: <Left_CommandSub '$('> spids: [2558 2574] ) ) } spids: [2556] ) ] spids: [2554] ) (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: [2589 2596] ) (Lit_RBrace '}') } ) ] ) left_token: <Left_CommandSub '$('> spids: [2582 2598] ) ) } spids: [2580] ) ] spids: [2578] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:from) op:Equal spids:[2604])] spids: [2602] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:dest) op:Equal spids:[2609])] spids: [2607] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:iters) op:Equal rhs:{(0)} spids:[2614])] spids: [2612] ) (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: [2631] ) ] spids: [2631] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dest) op: Equal rhs: {(DQ ($ VSub_Number '$2') (.xz))} spids: [2638] ) ] spids: [2638] ) ] spids: [2628 2629 2644 -1] ) (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: [2650] ) ] spids: [2650] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dest) op: Equal rhs: {(DQ ($ VSub_Number '$2') (.bz2))} spids: [2657] ) ] spids: [2657] ) ] spids: [2647 2648 2663 -1] ) (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: [2669] ) ] spids: [2669] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dest) op: Equal rhs: {(DQ ($ VSub_Number '$2') (.gz))} spids: [2676] ) ] spids: [2676] ) ] spids: [2666 2667 2682 -1] ) (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: [2688] ) ] spids: [2688] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dest) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [2694] ) ] spids: [2694] ) ] spids: [2685 2686 2699 -1] ) ] spids: [2619 2625 2702] ) (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: [2711 2715] ) ) } {(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: [2730] ) ] spids: [2730] ) ] spids: [-1 2727] ) ] spids: [-1 2737] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dest2) op: Equal rhs: {(DQ ($ VSub_Name '$dest'))} spids: [2742] ) ] spids: [2740] ) (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: [2755 2760] ) (/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: [2772 2777] ) (/partial/) (BracedVarSub token: <VSub_Name dest2> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [2779 2784] ) ) } spids: [2770] ) ] spids: [2770] ) ] spids: [-1 2767] ) ] spids: [-1 2788] ) (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: True ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) terminator: <Op_Semi ';'> ) ] spids: [-1 2842] ) ] spids: [-1 2849] ) (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: [2909] ) ] spids: [2909] ) ] spids: [-1 2906] ) ] spids: [-1 2914] ) ] spids: [-1 2869] ) ] spids: [-1 2917] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$checksum'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr 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'))} ) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name '$typ'))} arms: [ (case_arm pat_list: [{(gz)}] action: [(C {(gunzip)} {(DQ ($ VSub_Name '$dest'))})] spids: [2972 2973 2981 -1] ) (case_arm pat_list: [{(bz2)}] action: [(C {(bunzip2)} {(DQ ($ VSub_Name '$dest'))})] spids: [2984 2985 2993 -1] ) (case_arm pat_list: [{(xz)}] action: [(C {(unxz)} {(DQ ($ VSub_Name '$dest'))})] spids: [2996 2997 3005 -1] ) ] spids: [2963 2969 3008] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [-1 2933] ) ] 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: [3043 3050] ) ) } spids: [3041] ) ] spids: [3041] ) ] spids: [3016 3054] ) ] spids: [2807 3057] ) ) (C {(warning)} {(CORRUPTFILE)} {(DQ ('%s was corrupt'))} {(DQ ($ VSub_Name '$from'))}) ] spids: [2534 3073] ) spids: [2530 2532] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2091] ) spids: [2086 2090] ) (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: [3097] ) ] spids: [3095] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:dest) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [3105] ) ] spids: [3103] ) (C {(mkdir)} {(-p)} { (DQ (BracedVarSub token: <VSub_Name dest> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [3116 3121] ) ) } ) (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: [3130 3134] ) ) } {(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: [3161 3165] ) ) } ) ] spids: [-1 3147] ) (if_arm cond: [ (Sentence child: (AndOr 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: [3174 3180] ) ) } {(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: [3197 3203] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Name '$from'))} {(Lit_Other ']')} ) ] op_id: Op_DPipe ) 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: [-1 3238] ) ] else_action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3246 3263] ) ] spids: [3169 3216] ) (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: [3271 3277] ) ) } {(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: [-1 3319] ) ] else_action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$dest'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3327 3344] ) ] spids: [3266 3291] ) (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: [3352 3356] ) ) } {(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: [3376 3380] ) ) } spids: [3374] ) ] spids: [3372] ) (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: [3389 3394] ) ) } {(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: [3413 3421] ) ) } spids: [3410] ) ] spids: [3410] ) ] spids: [-1 3407] ) ] spids: [-1 3425] ) (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: [-1 3441] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [3460 3468] ) ] spids: [3347 3369] ) (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: [3476 3480] ) ) } {(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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [3500 3520] ) ) } spids: [3498] ) ] spids: [3496] ) (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: [-1 3537] ) ] else_action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [3556 3564] ) ] spids: [3471 3493] ) ] else_action: [ (C {(error)} {(1)} {(UNKNOWNLOC)} {(DQ ('unknown location %s'))} {(DQ ($ VSub_Name '$from'))} ) ] spids: [3567 3585] ) ] spids: [3088] ) spids: [3083 3087] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [3605 3627] ) } ) ] spids: [3595] ) spids: [3590 3594] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [3647 3669] ) } ) ] spids: [3637] ) spids: [3632 3636] ) (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: False body: (DoGroup children: [ (Sentence child: (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$p'))} {(Lit_Other '=')} {(DQ ($ VSub_Name '$pkg'))} {(Lit_Other ']')} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ($ VSub_Name '$path'))}) ] spids: [3706 3736] ) spids: [3700 3704] ) ] spids: [3692 3739] ) redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/debootstrap/debpaths))} spids: [3741] ) ] ) spids: [3682 3748] ) ] spids: [3679] ) spids: [3674 3678] ) (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: False ) ] spids: [3786 3787 3817 -1] ) (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: [3826] ) ] spids: [3824] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: {(DQ (debootstrap.invalid))} spids: [3832] ) ] spids: [3832] ) (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: False ) ] spids: [3820 3821 3898 -1] ) (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: [3907] ) ] spids: [3905] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: {(DQ (debootstrap.invalid))} spids: [3913] ) ] spids: [3913] ) (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: False ) ] spids: [3901 3902 3978 -1] ) ] spids: [3777 3783 3981] ) ] spids: [3758] ) spids: [3753 3757] ) (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: [4000] ) ] spids: [3998] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:path) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [4008] ) ] spids: [4006] ) (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: [4034] ) ] spids: [4032] ) ] spids: [-1 4029] ) ] 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: [4045] ) ] spids: [4043] ) ] spids: [4040 4053] ) (Pipeline children: [ (SimpleCommand words: [{(sed)} {(-n)} {(DQ (/) ($ VSub_Name '$match') ('/,/^[^ ]/p'))}] redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Name '$reldest'))} spids: [4066] ) ] ) (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: [-1 4107] ) ] spids: [-1 4118] ) ] spids: [4087 4121] ) ) (C {(head)} {(-n)} {(1)}) ] negated: False ) ] spids: [3995] ) spids: [3990 3994] ) (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: [4144] ) ] spids: [4142] ) 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: [4155 4167] ) ) } spids: [4153] ) ] spids: [4153] ) (ForEach iter_name: c iter_words: [{($ VSub_Name '$TMPCOMPONENTS')}] do_arg_iter: False 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: [4181 4211] ) spids: [4176 4179] ) (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: [4216 4220] ) ) } spids: [4214] ) ] spids: [4214] ) (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: [-1 4237] ) ] spids: [-1 4263] ) ] spids: [4139] ) spids: [4134 4138] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CODENAME) op:Equal rhs:{(DQ )} spids:[4268])] spids: [4268] ) (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: [4282] ) ] spids: [4280] ) (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: [4290 4302] ) } spids: [4289] ) ] spids: [4289] ) (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: [4308 4320] ) } spids: [4307] ) ] spids: [4305] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr 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 ']')} ) ] op_id: Op_DAmp ) 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: [-1 4359] ) ] spids: [-1 4385] ) ] spids: [4277] ) spids: [4272 4276] ) (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: [4400] ) ] spids: [4398] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:reldest) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [4408] ) ] spids: [4406] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:relsigdest) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [4416] ) ] spids: [4414] ) (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:[4456])] spids: [4456] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:state) op:Equal rhs:{(pre-begin)} spids:[4461])] spids: [4461] ) (While cond: [ (Sentence child: (SimpleCommand words: [{(read)} {(-r)} {(line)}] more_env: [(env_pair name:IFS val:{(SQ )} spids:[4467])] ) 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: [4517] ) ] spids: [4517] ) ] spids: [-1 4514] ) ] spids: [-1 4521] ) ] spids: [4490 4491 4524 -1] ) (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: [4554] ) ] spids: [4554] ) ] spids: [-1 4551] ) ] spids: [-1 4558] ) ] spids: [4527 4528 4561 -1] ) (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') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>)) } {(DQ (${ VSub_Name line))} ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$relsigdest'))} spids: [4604] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:state) op: Equal rhs: {(signature)} spids: [4611] ) ] spids: [4611] ) ] spids: [-1 4588] ) ] else_action: [ (SimpleCommand words: [ {(printf)} {(DQ (${ VSub_Name nl) ('%s'))} {(DQ (${ VSub_Name line))} ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name '$reldest'))} spids: [4633] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nl) op: Equal rhs: {(DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))} spids: [4640] ) ] spids: [4640] ) ] spids: [4615 4646] ) ] spids: [4564 4565 4649 -1] ) (case_arm pat_list: [{(signature)}] action: [ (SimpleCommand words: [ {(printf)} {(DQ ('%s') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))} {(DQ (${ VSub_Name line))} ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(DQ ($ VSub_Name '$relsigdest'))} spids: [4669] ) ] ) (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: [-1 4696] ) ] spids: [-1 4702] ) ] spids: [4652 4653 -1 4705] ) ] spids: [4479 4487 4705] ) ] spids: [4476 4708] ) redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Name '$inreldest'))} spids: [4710] ) ] ) ] spids: [4395] ) spids: [4390 4394] ) (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: [4729] ) ] spids: [4727] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:inreldest) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [4737] ) ] spids: [4735] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:reldest) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [4745] ) ] spids: [4743] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:relsigdest) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [4753] ) ] spids: [4751] ) (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: [-1 4796] ) ] else_action: [ (AndOr 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))} ) ] op_id: Op_DPipe ) (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))}) ] spids: [4827 4879] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$KEYRING'))} {(Lit_Other ']')}) (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$DISABLE_KEYRING'))} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) 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: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(progress_next)} {(50)}) (AndOr 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))} ) ] op_id: Op_DPipe ) (C {(progress)} {(50)} {(100)} {(DOWNRELSIG)} {(DQ ('Downloading Release file signature'))} ) ] spids: [-1 4938] ) ] spids: [-1 4997] ) (C {(info)} {(RELEASESIG)} {(DQ ('Checking Release signature'))}) (Pipeline children: [ (Subshell child: (AndOr children: [ (C {(gpgv)} {(--status-fd)} {(1)} {(--keyring)} {(DQ ($ VSub_Name '$KEYRING'))} {(--ignore-time-conflict)} {(DQ ($ VSub_Name '$relsigdest'))} {(DQ ($ VSub_Name '$reldest'))} ) (C {(true)}) ] op_id: Op_DPipe ) spids: [5018 5046] ) (C {(read_gpg_status)}) ] negated: False ) (C {(progress)} {(100)} {(100)} {(DOWNRELSIG)} {(DQ ('Downloading Release file signature'))} ) ] spids: [-1 4907] ) ] spids: [-1 5066] ) ] spids: [4724] ) spids: [4719 4723] ) (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: [5083 5087] ) ) } spids: [5081] ) ] spids: [5079] ) (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: [5097 5115] ) ) } spids: [5093] ) ] spids: [5091] ) (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: [5125 5143] ) ) } spids: [5121] ) ] spids: [5119] ) (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: [5153 5171] ) ) } spids: [5149] ) ] spids: [5147] ) (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:[5212])] spids: [5210] ) (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False 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: [5230] ) ] spids: [5228] ) (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: [5243 5254] ) ) } spids: [5241] ) ] spids: [5239] ) (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: [5262 5273] ) ) } spids: [5260] ) ] spids: [5258] ) (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: [5281 5292] ) ) } spids: [5279] ) ] spids: [5277] ) (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: [5300 5310] ) ) } spids: [5298] ) ] spids: [5296] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(SQ )} spids:[5316])] spids: [5314] ) (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: [5339] ) ] spids: [5339] ) ] spids: [-1 5336] ) (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(bunzip2)}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$bz2i'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: {(DQ ($ VSub_Name '$bz2i'))} spids: [5371] ) ] spids: [5371] ) ] spids: [5345 5368] ) (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(unxz)}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$xzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: {(DQ ($ VSub_Name '$xzi'))} spids: [5403] ) ] spids: [5403] ) ] spids: [5377 5400] ) (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(gunzip)}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: {(DQ ($ VSub_Name '$gzi'))} spids: [5435] ) ] spids: [5435] ) ] spids: [5409 5432] ) ] spids: [-1 5441] ) (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: [5472 5476] ) } ) ) spids: [5466 5479] ) ) } spids: [5464] ) ] spids: [5464] ) ] spids: [-1 5461] ) ] 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: [5483 5513] ) ] spids: [5225 5516] ) spids: [5221 5223] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:donepkgs) op:Equal rhs:{(0)} spids:[5522])] spids: [5520] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:pkgdest) op:Equal spids:[5528])] spids: [5526] ) (C {(progress)} {(0)} {($ VSub_Name '$totalpkgs')} {(DOWNPKGS)} {(DQ ('Downloading Packages files'))} ) (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False 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: [5558] ) ] spids: [5556] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:path) op: Equal rhs: {(DQ (dists/) ($ VSub_Name '$SUITE') (/) ($ VSub_Name '$subpath'))} spids: [5569] ) ] spids: [5567] ) (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: [5582 5593] ) ) } spids: [5580] ) ] spids: [5578] ) (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: [5601 5612] ) ) } spids: [5599] ) ] spids: [5597] ) (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: [5620 5631] ) ) } spids: [5618] ) ] spids: [5616] ) (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: [5639 5649] ) ) } spids: [5637] ) ] spids: [5635] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:ext) op:Equal rhs:{(SQ )} spids:[5655])] spids: [5653] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(SQ )} spids:[5660])] spids: [5658] ) (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: [5683] ) ] spids: [5683] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: {(DQ ($ VSub_Name '$normi'))} spids: [5692] ) ] spids: [5692] ) ] spids: [-1 5680] ) ] spids: [-1 5698] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(unxz)}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$xzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) 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: [5727] ) ] spids: [5727] ) (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: [5738 5742] ) ) } spids: [5736] ) ] spids: [5736] ) ] spids: [-1 5724] ) ] spids: [-1 5746] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(bunzip2)}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$bz2i'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) 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: [5775] ) ] spids: [5775] ) (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: [5786 5790] ) ) } spids: [5784] ) ] spids: [5784] ) ] spids: [-1 5772] ) ] spids: [-1 5794] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(gunzip)}) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$gzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) 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: [5823] ) ] spids: [5823] ) (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: [5834 5838] ) ) } spids: [5832] ) ] spids: [5832] ) ] spids: [-1 5820] ) ] spids: [-1 5842] ) (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: [5853 5857] ) } ) ) spids: [5848 5859] ) ) } ) (ForEach iter_name: m iter_words: [{($ VSub_Name '$MIRRORS')}] do_arg_iter: False 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: [5879 5903] ) ) } spids: [5875] ) ] spids: [5875] ) (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: [-1 5924] ) ] spids: [-1 5929] ) ] spids: [5872 5932] ) spids: [5868 5870] ) (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: [-1 5950] ) ] spids: [-1 5968] ) (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: [5978 5982] ) } ) ) spids: [5973 5984] ) ) } spids: [5971] ) ] spids: [5971] ) (C {(progress)} {($ VSub_Name '$donepkgs')} {($ VSub_Name '$totalpkgs')} {(DOWNPKGS)} {(DQ ('Downloading Packages files'))} ) ] spids: [5553 6001] ) spids: [5549 5551] ) ] spids: [5076] ) spids: [5071 5075] ) (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: [6020] ) ] spids: [6018] ) 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: [6031] ) ] spids: [6029] ) 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: [6061] ) ] spids: [6061] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:totaldebs) op: Equal rhs: {(0)} spids: [6066] ) ] spids: [6066] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:countdebs) op: Equal rhs: {(0)} spids: [6070] ) ] spids: [6070] ) (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: [6106] ) ] spids: [6106] ) ] spids: [-1 6103] ) ] 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: [6119 6123] ) ) } spids: [6117] ) ] spids: [6117] ) 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: [6130 6137] ) ) } spids: [6128] ) ] spids: [6128] ) (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: [6143 6150] ) ) } spids: [6141] ) ] spids: [6141] ) ] spids: [6114 6154] ) ] spids: [6083 6157] ) ) (C {(echo)} { (DQ ($ VSub_Name '$countdebs') (' ') ($ VSub_Name '$totaldebs') ($ VSub_Name '$newleft') ) } ) ] ) spids: [6058 6170] ) ] negated: False ) ] spids: [6011] ) spids: [6006 6010] ) (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: [6188] ) ] spids: [6186] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:pkgdest) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [6196] ) ] spids: [6194] ) (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: [6230] ) ] spids: [6230] ) (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: [6277] ) ] spids: [6277] ) ] spids: [-1 6274] ) ] 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: [6291 6298] ) ) } ) (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: [6306 6330] ) ) } spids: [6304] ) ] spids: [6302] ) (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: [6364 6371] ) ) } spids: [6362] ) ] spids: [6362] ) (SimpleCommand words: [ {(echo)} { (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$ver') (' ') ($ VSub_Name '$m') (/) ($ VSub_Name '$fil') ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name '$TARGET') (/debootstrap/deburis)} spids: [6377] ) ] ) (SimpleCommand words: [ {(echo)} { (DQ ($ VSub_Name '$p') (' ') ($ VSub_Name '$debdest')) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)} spids: [6394] ) ] ) ] spids: [-1 6359] ) ] 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: [6429] ) ] spids: [6429] ) ] spids: [6405 6437] ) ] spids: [6285 6440] ) ] spids: [6254 6443] ) ) (SimpleCommand words: [ {(echo)} { (BracedVarSub token: <VSub_Name leftover> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(' ')}) spids: [6451 6455] ) } ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(5)} spids:[6448])] ) ] ) spids: [6227 6458] ) ] negated: False ) ] spids: [6183] ) spids: [6178 6182] ) (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: [6475 6479] ) ) } spids: [6473] ) ] spids: [6471] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:numdebs) op: Equal rhs: {(DQ ($ VSub_Pound '$#'))} spids: [6486] ) ] spids: [6484] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:countdebs) op:Equal rhs:{(0)} spids:[6495])] spids: [6493] ) (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:[6515])] spids: [6513] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:leftoverdebs) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [6521] ) ] spids: [6519] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [6533 6563] ) } spids: [6532] ) ] spids: [6532] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [6567 6577] ) } spids: [6566] ) ] spids: [6566] ) (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False 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: [-1 6610] ) ] spids: [-1 6615] ) (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: [6621] ) ] spids: [6619] ) (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: [6639 6663] ) ) } spids: [6635] ) ] spids: [6633] ) (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: [-1 6682] ) ] spids: [-1 6687] ) (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: [6711 6723] ) ) } spids: [6709] ) ] spids: [6709] ) (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: [6734 6738] ) } ) ) spids: [6729 6740] ) } spids: [6728] ) ] spids: [6728] ) (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: [6744 6748] ) } spids: [6743] ) ] spids: [6743] ) (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: [6753 6757] ) } spids: [6752] ) ] spids: [6752] ) (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: [6761 6765] ) } spids: [6760] ) ] spids: [6760] ) (C {(progress)} {($ VSub_Name '$countdebs')} {($ VSub_Name '$numdebs')} {(SIZEDEBS)} {(DQ ('Finding package sizes'))} ) ] spids: [6590 6782] ) spids: [6586 6588] ) (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: [-1 6803] ) ] spids: [-1 6821] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:dloaddebs) op:Equal rhs:{(0)} spids:[6827])] spids: [6825] ) (C {(progress)} {($ VSub_Name '$dloaddebs')} {($ VSub_Name '$totaldebs')} {(DOWNDEBS)} {(DQ ('Downloading packages'))} ) (SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)} spids: [6846] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgs_to_get) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [6852] ) ] spids: [6852] ) (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False 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: [6872] ) ] spids: [6870] ) (ForEach iter_name: m iter_words: [{($ VSub_Name '$MIRRORS')}] do_arg_iter: False 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: [6902 6926] ) ) } spids: [6898] ) ] spids: [6896] ) (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: [-1 6945] ) ] spids: [-1 6950] ) (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: [6968] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(6)} spids: [6971] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [6955 6973] ) ) } spids: [6953] ) ] spids: [6953] ) (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: [-1 6990] ) ] spids: [-1 6995] ) ] spids: [6893 6998] ) redirects: [(Redir op_id:Redir_GreatAnd fd:6 arg_word:{(1)} spids:[7000])] spids: [6889 6891] ) (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: [-1 7017] ) ] spids: [-1 7022] ) ] spids: [6867 7025] ) spids: [6863 6865] ) (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: [-1 7058] ) ] spids: [-1 7076] ) ] spids: [6468] ) spids: [6463 6467] ) (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: [7093 7097] ) ) } spids: [7091] ) ] spids: [7089] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:comp) op: Equal rhs: {(DQ (${ VSub_Name USE_COMPONENTS))} spids: [7103] ) ] spids: [7101] ) (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: [7145] ) ] spids: [7145] ) terminator: <Op_Semi ';'> ) ] spids: [-1 7143] ) ] spids: [-1 7149] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [7154 7170] ) ) } spids: [7152] ) ] spids: [7152] ) (C {(export)} {(COMPONENTS)}) (ForEach iter_name: m iter_words: [{($ VSub_Name '$MIRRORS')}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False 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: [7206] ) ] spids: [7204] ) (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: [7224 7248] ) ) } spids: [7220] ) ] spids: [7218] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (C {(in_path)} {(gunzip)}) (C {(get)} {(DQ ($ VSub_Name '$m') (/) (${ VSub_Name path) (.gz))} {(DQ (${ VSub_Name pkgdest) (.gz))} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$pkgdest'))}) (C {(gunzip)} {(DQ ($ VSub_Name '$pkgdest') (.gz))}) ] spids: [-1 7279] ) (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: [7299 7314] ) ] spids: [-1 7320] ) ] spids: [7201 7323] ) spids: [7197 7199] ) ] spids: [7189 7326] ) spids: [7185 7187] ) (C {(progress)} {(100)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))}) ] spids: [7086] ) spids: [7081 7085] ) (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: [7356 7360] ) ) } spids: [7354] ) ] spids: [7352] ) (SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)} spids: [7366] ) ] ) (ForEach iter_name: p iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:details) op: Equal rhs: {(DQ )} spids: [7399] ) ] spids: [7397] ) (ForEach iter_name: m iter_words: [{($ VSub_Name '$MIRRORS')}] do_arg_iter: False 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: [7418] ) ] spids: [7416] ) (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: [7436 7460] ) ) } spids: [7432] ) ] spids: [7430] ) (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: [-1 7479] ) ] spids: [-1 7484] ) (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: [7489 7505] ) ) } spids: [7487] ) ] spids: [7487] ) (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: [7530] ) ] spids: [7530] ) (ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [-1 7527] ) ] spids: [-1 7538] ) (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: [7543 7547] ) ) } spids: [7541] ) ] spids: [7541] ) 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: [7553 7557] ) ) } spids: [7551] ) ] spids: [7551] ) (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: [7563 7567] ) ) } spids: [7561] ) ] spids: [7561] ) 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: [7573 7577] ) ) } spids: [7571] ) ] spids: [7571] ) (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: [7585 7591] ) ) } spids: [7583] ) ] spids: [7581] ) (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: [7602 7606] ) ) } {(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: -1 arg_word: {($ VSub_Name '$TARGET') (/debootstrap/debpaths)} spids: [7629] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:details) op: Equal rhs: {(DQ (done))} spids: [7640] ) ] spids: [7640] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [-1 7624] ) ] spids: [-1 7649] ) ] spids: [7413 7652] ) spids: [7409 7411] ) (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: [-1 7672] ) ] spids: [-1 7678] ) ] spids: [7394 7681] ) spids: [7390 7392] ) (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: [-1 7702] ) ] spids: [-1 7720] ) ] spids: [7382 7723] ) spids: [7376 7380] ) ] spids: [7349] ) spids: [7344 7348] ) (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: [7742] ) ] spids: [7740] ) (C {(shift)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:m1) op:Equal spids:[7753]) (assign_pair lhs:(LhsName name:c) op:Equal spids:[7755]) ] spids: [7751] ) (ForEach iter_name: m1 iter_words: [{($ VSub_Name '$MIRRORS')}] do_arg_iter: False body: (DoGroup children: [ (ForEach iter_name: c iter_words: [{($ VSub_Name '$COMPONENTS')}] do_arg_iter: False 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: [7784] ) ] spids: [7782] ) (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: [7802 7826] ) ) } spids: [7798] ) ] spids: [7796] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [7832 7862] ) } ) ] spids: [7779 7865] ) spids: [7775 7777] ) ] spids: [7767 7868] ) spids: [7763 7765] ) ] spids: [7737] ) spids: [7732 7736] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXTRACTORS_SUPPORTED) op: Equal rhs: {(DQ ('dpkg-deb ar'))} spids: [7877] ) ] spids: [7877] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXTRACT_DEB_TAR_OPTIONS) op: Equal rhs: {(SQ )} spids: [7882] ) ] spids: [7882] ) (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: [7898] ) ] spids: [7896] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:field) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [7906] ) ] spids: [7904] ) (C {(dpkg-deb)} {(-f)} {(DQ ($ VSub_Name '$pkg'))} {(DQ ($ VSub_Name '$field'))}) ] spids: [7893] ) spids: [7888 7892] ) (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: [7938] ) ] spids: [7936] ) (Pipeline children: [ (C {(dpkg-deb)} {(--fsys-tarfile)} {(DQ ($ VSub_Name '$pkg'))}) (C {(tar)} {($ VSub_Name '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)}) ] negated: False ) ] spids: [7933] ) spids: [7928 7932] ) (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: [7979] ) ] spids: [7977] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:field) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [7987] ) ] spids: [7985] ) (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') (EscapedLiteralPart token: <Lit_EscapedChar '\\.'> ) (tar) ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [7996 8014] ) } spids: [7995] ) ] spids: [7993] ) (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: [8030] ) ] spids: [8030] ) ] spids: [8027 8028 8033 -1] ) (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: [8039] ) ] spids: [8039] ) ] spids: [8036 8037 8042 -1] ) (case_arm pat_list: [{(control.tar)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cat_cmd) op: Equal rhs: {(cat)} spids: [8048] ) ] spids: [8048] ) ] spids: [8045 8046 8051 -1] ) (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: [8054 8055 8075 -1] ) ] spids: [8018 8024 8078] ) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(type)} {($ VSub_Name '$cat_cmd')}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [8088] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [8091] ) ] ) 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: [8129] ) ] ) (C {(grep)} {(-i)} {(DQ ('^') ($ VSub_Name '$field') (':'))}) (C {(sed)} {(-e)} {(SQ <'s/[^:]*: *//'>)}) (C {(head)} {(-n)} {(1)}) ] negated: False ) ] spids: [-1 8095] ) ] 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: [8164 8186] ) ] spids: [7974] ) spids: [7969 7973] ) (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: [8201] ) ] spids: [8199] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [8210 8226] ) } spids: [8209] ) ] spids: [8207] ) (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: [8242] ) ] spids: [8242] ) ] spids: [8239 8240 8245 -1] ) (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: [8251] ) ] spids: [8251] ) ] spids: [8248 8249 8254 -1] ) (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: [8260] ) ] spids: [8260] ) ] spids: [8257 8258 8263 -1] ) (case_arm pat_list: [{(data.tar)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cat_cmd) op: Equal rhs: {(cat)} spids: [8269] ) ] spids: [8269] ) ] spids: [8266 8267 8272 -1] ) (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: [8275 8276 8296 -1] ) ] spids: [8230 8236 8299] ) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(type)} {($ VSub_Name '$cat_cmd')}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [8309] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [8312] ) ] ) 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: False ) ] spids: [-1 8316] ) ] 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: [8346 8368] ) ] spids: [8196] ) spids: [8191 8195] ) (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: [8383] ) ] spids: [8381] ) (ForEach iter_name: E iter_words: [{($ VSub_Name '$EXTRACTORS_SUPPORTED')}] do_arg_iter: False 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: [-1 8419] ) ] spids: [-1 8427] ) ] spids: [8399 8430] ) spids: [8395 8397] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [8378] ) spids: [8373 8377] ) (FuncDef name: choose_extractor body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:extractor) op:Equal spids:[8451])] spids: [8449] ) (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: [8471] ) ] spids: [8471] ) ] spids: [-1 8468] ) (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(type)} {(dpkg-deb)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [8483] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [8486] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:extractor) op: Equal rhs: {(DQ (dpkg-deb))} spids: [8493] ) ] spids: [8493] ) ] spids: [8477 8490] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:extractor) op: Equal rhs: {(DQ (ar))} spids: [8502] ) ] spids: [8502] ) ] spids: [8499 8508] ) (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: [8543] ) spids: [8538 8542] ) (FuncDef name: extract_deb_data body: (BraceGroup children: [ (Sentence child: (C {(extract_dpkg_deb_data)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [8560] ) spids: [8555 8559] ) ] spids: [8534 8535 8572 -1] ) (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: [8584] ) spids: [8579 8583] ) (FuncDef name: extract_deb_data body: (BraceGroup children: [ (Sentence child: (C {(extract_ar_deb_data)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [8601] ) spids: [8596 8600] ) ] spids: [8575 8576 8613 -1] ) ] spids: [8525 8531 8616] ) ] spids: [8446] ) spids: [8441 8445] ) (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: [8640] ) (assign_pair lhs: (LhsName name:cat_cmd) op: Equal spids: [8643] ) ] spids: [8638] ) (ForEach iter_name: pkg iter_words: [ { (CommandSubPart command_list: (CommandList children: [(C {(debfor)} {(DQ ($ VSub_At '$@'))})] ) left_token: <Left_CommandSub '$('> spids: [8652 8658] ) } ] do_arg_iter: False 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: [8666 8673] ) ) } spids: [8664] ) ] spids: [8664] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [8696 8710] ) ) } spids: [8694] ) ] spids: [8694] ) (C {(info)} {(EXTRACTING)} {(DQ ('Extracting %s...'))} {(DQ ($ VSub_Name '$packagename'))} ) (C {(extract_deb_data)} {(DQ (./) ($ VSub_Name '$pkg'))}) ] spids: [8661 8735] ) spids: [8651 8659] ) ] ) spids: [8628 8737] ) terminator: <Op_Semi ';'> ) ] spids: [8626] ) spids: [8621 8625] ) (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: [8761] ) ] ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [(C {(true)})] spids: [-1 8765] ) ] spids: [-1 8771] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8748] ) spids: [8743 8747] ) (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: [8791] ) ] spids: [8789] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:msg) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [8799] ) ] spids: [8797] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:arg) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [8807] ) ] spids: [8805] ) (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: True ) 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: [8855] ) ] spids: [8855] ) (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: [8878] ) ] spids: [8878] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [8889 8930] ) ) } spids: [8887] ) ] spids: [8885] ) (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: [8950] ) ] spids: [8950] ) ] spids: [-1 8947] ) ] spids: [-1 8959] ) ] spids: [-1 8875] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg) op: Equal rhs: {(DQ ('the log'))} spids: [8965] ) ] spids: [8965] ) ] spids: [8962 8971] ) (C {(warning)} {(DQ ($ VSub_Name '$code'))} {(DQ ($ VSub_Name '$msg'))} {(DQ ($ VSub_Name '$arg'))} ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [-1 8833] ) ] spids: [-1 8994] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8786] ) spids: [8781 8785] ) (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: [9009] ) spids: [9004 9008] ) (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 children: [ (C {(Lit_Other '[')} {(-L)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))} spids: [9099] ) ] ) ] spids: [-1 9090] ) (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: [9107 9120] ) ] spids: [-1 9138] ) ] spids: [-1 9062] ) ] spids: [-1 9141] ) ] spids: [9042] ) spids: [9037 9041] ) (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: [9156] ) ] spids: [9154] ) (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: [9168 9174] ) ) } ) (C {(tr)} {(SQ </>)} {(SQ <_>)}) (C {(sed)} {(SQ <'s/_*//'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [9164 9196] ) ) } spids: [9162] ) ] spids: [9162] ) (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: False 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: [9235 9239] ) ) } ) ] spids: [9221 9243] ) spids: [9216 9219] ) ] ) spids: [9200 9246] ) ] spids: [9151] ) spids: [9146 9150] ) (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: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:cs) op:Equal rhs:{(DQ )} spids:[9285])] spids: [9283] ) (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: [9296 9300] ) } ] do_arg_iter: False 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: [9308] ) ] spids: [9306] ) (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: [9326 9350] ) ) } spids: [9322] ) ] spids: [9320] ) (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: [9369] ) ] spids: [9369] ) terminator: <Op_Semi ';'> ) ] spids: [-1 9367] ) ] spids: [-1 9377] ) ] spids: [9303 9380] ) spids: [9295 9301] ) (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: [-1 9400] ) ] spids: [-1 9413] ) ] spids: [9280 9416] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/etc/apt/sources.list))} spids: [9418] ) ] spids: [9274 9278] ) ] spids: [9256] ) spids: [9251 9255] ) (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 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 ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [(C {(setup_apt_sources)} {(DQ ('http://debootstrap.invalid/'))})] spids: [-1 9496] ) ] spids: [-1 9506] ) ] spids: [9433] ) spids: [9428 9432] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:UMOUNT_DIRS) op:Equal rhs:{(SQ )} spids:[9511])] spids: [9511] ) (FuncDef name: umount_exit_function body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:realdir) op:Equal spids:[9524])] spids: [9522] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name '$UMOUNT_DIRS')}] do_arg_iter: False 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: [9541 9551] ) ) } spids: [9539] ) ] spids: [9539] ) (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$realdir'))} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Continue continue>) ] op_id: Op_DPipe ) (AndOr 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: [9581 9585] ) ) } ) ] ) spids: [9568 9588] ) (C {(true)}) ] op_id: Op_DPipe ) ] spids: [9536 9595] ) spids: [9532 9534] ) ] spids: [9519] ) spids: [9514 9518] ) (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: [9622] ) ] spids: [9622] ) ] spids: [-1 9619] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UMOUNT_DIRS) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [9633] ) ] spids: [9633] ) (C {(on_exit)} {(umount_exit_function)}) ] spids: [9630 9644] ) ] spids: [9605] ) spids: [9600 9604] ) (FuncDef name: clear_mtab body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr 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 ']')} ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$TARGET') (/etc/mtab))})] spids: [-1 9686] ) ] spids: [-1 9699] ) ] spids: [9654] ) spids: [9649 9653] ) (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 children: [ (SimpleCommand words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/proc))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [9744] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) (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: [-1 9767] ) ] else_action: [ (C {(mount)} {(-t)} {(linprocfs)} {(proc)} {($ VSub_Name '$TARGET') (/proc)}) ] spids: [9783 9798] ) ] spids: [9721 9724 9801 -1] ) (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: [9804 9806 9855 -1] ) (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 children: [ (SimpleCommand words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/proc))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [9889] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) (C {(in_target)} {(mount)} {(-t)} {(proc)} {(proc)} {(/proc)}) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr 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: [9937] ) ] ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] action: [ (C {(umount_on_exit)} {(/sys)}) (AndOr children: [ (SimpleCommand words: [{(umount)} {(DQ ($ VSub_Name '$TARGET') (/sys))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [9956] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) (C {(in_target)} {(mount)} {(-t)} {(sysfs)} {(sysfs)} {(/sys)}) ] spids: [-1 9941] ) ] spids: [-1 9977] ) (C {(on_exit)} {(clear_mtab)}) ] spids: [9858 9859 9985 -1] ) ] spids: [9712 9718 9988] ) (C {(umount_on_exit)} {(/lib/init/rw)}) ] spids: [9709] ) spids: [9704 9708] ) (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: [10003] ) spids: [9998 10002] ) (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: [-1 10047] ) ] spids: [-1 10058] ) (Case to_match: {(DQ ($ VSub_Name '$HOST_OS'))} arms: [ (case_arm pat_list: [{(kfreebsd) (Lit_Other '*')}] spids: [10071 10073 10076 -1] ) (case_arm pat_list:[{(freebsd)}] spids:[100791008010083-1]) (case_arm pat_list: [{(hurd) (Lit_Other '*')}] spids: [10086 10088 10091 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(setup_devices_simple)})] spids: [10094 10095 10101 -1] ) ] spids: [10062 10068 10104] ) ] spids: [10037] ) spids: [10032 10036] ) (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: [-1 10127] ) ] spids: [-1 10135] ) (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: [10148 10150 10165 -1] ) (case_arm pat_list: [{(freebsd)}] action: [(C {(mount)} {(-t)} {(devfs)} {(devfs)} {($ VSub_Name '$TARGET') (/dev)})] spids: [10168 10169 10183 -1] ) (case_arm pat_list: [{(hurd) (Lit_Other '*')}] action: [(C {(in_target)} {(/usr/lib/hurd/setup-translators)} {(-k)})] spids: [10186 10188 10201 -1] ) ] spids: [10139 10145 10204] ) ] spids: [10117] ) spids: [10112 10116] ) (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: True ) 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: [-1 10358] ) ] spids: [-1 10380] ) (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: [10214] ) spids: [10209 10213] ) (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: [10430] ) spids: [10425 10429] ) (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: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/cmethopt))} spids: [10493] ) ] ) (C {(chmod)} {(644)} {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/cmethopt))}) ] spids: [10473 10474 10511 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(UNKNOWNDSELECT)} {(DQ ('unknown dselect method'))})] spids: [10514 10515 10529 -1] ) ] spids: [10464 10470 10532] ) ] spids: [10461] ) spids: [10456 10460] ) (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: [-1 10585] ) ] spids: [-1 10592] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:link_dir) op:Equal spids:[10598])] spids: [10596] ) (Case to_match: {($ VSub_Name '$ARCH')} arms: [ (case_arm pat_list: [{(hurd-) (Lit_Other '*')}] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [10608 10610 10616 -1] ) (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: [10622] ) ] spids: [10622] ) ] spids: [10619 10620 10627 -1] ) (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: [10633] ) ] spids: [10633] ) ] spids: [10630 10631 10638 -1] ) (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: [10647] ) ] spids: [10647] ) ] spids: [10641 10644 10652 -1] ) (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: [10663] ) ] spids: [10663] ) ] spids: [10655 10660 10668 -1] ) (case_arm pat_list: [{(powerpc)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link_dir) op: Equal rhs: {(DQ (lib64))} spids: [10674] ) ] spids: [10674] ) ] spids: [10671 10672 10679 -1] ) (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: [10685] ) ] spids: [10685] ) ] spids: [10682 10683 10690 -1] ) (case_arm pat_list: [{(ppc64el)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link_dir) op: Equal rhs: {(DQ (lib64))} spids: [10696] ) ] spids: [10696] ) ] spids: [10693 10694 10701 -1] ) (case_arm pat_list: [{(s390x)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link_dir) op: Equal rhs: {(DQ (lib32))} spids: [10707] ) ] spids: [10707] ) ] spids: [10704 10705 10712 -1] ) (case_arm pat_list: [{(sparc)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link_dir) op: Equal rhs: {(DQ (lib64))} spids: [10718] ) ] spids: [10718] ) ] spids: [10715 10716 10723 -1] ) (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: [10729] ) ] spids: [10729] ) ] spids: [10726 10727 10734 -1] ) (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: [10740] ) ] spids: [10740] ) ] spids: [10737 10738 10745 -1] ) ] spids: [10601 10605 10748] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:link_dir) op: Equal rhs: {(DQ ('bin sbin lib ') ($ VSub_Name '$link_dir'))} spids: [10751] ) ] spids: [10751] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:dir) op:Equal spids:[10761])] spids: [10759] ) (ForEach iter_name: dir iter_words: [{($ VSub_Name '$link_dir')}] do_arg_iter: False 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: [10773 10797] ) spids: [10769 10771] ) ] spids: [10565] ) spids: [10561 10564] ) (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: [10826] ) ] spids: [10826] ) (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: [10836] ) spids: [10831 10835] ) (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: [-1 10928] ) (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: [10986] ) ] spids: [10984] ) 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: -1 arg_word: {(DQ ($ VSub_Name '$pkgdest'))} spids: [11034] ) ] ) (C {(sort)}) (C {(uniq)}) ] negated: False ) ] spids: [10964 10981] ) (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: [11074] ) ] spids: [11072] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [11082] ) ] spids: [11080] ) (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: -1 arg_word: {(DQ ($ VSub_Name '$p'))} spids: [11112] ) ] ) ] spids: [11052 11069] ) (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: [11141] ) ] spids: [11139] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:m) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [11149] ) ] spids: [11147] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [11157] ) ] spids: [11155] ) (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: -1 arg_word: {(DQ ($ VSub_Name '$p'))} spids: [11191] ) ] ) ] spids: [11119 11136] ) (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: [11220] ) ] spids: [11218] ) 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: -1 arg_word: {(DQ ($ VSub_Name '$pkgdest'))} spids: [11255] ) ] ) ] spids: [11198 11215] ) ] spids: [-1 11265] ) ] spids: [10908] ) spids: [10903 10907] ) ] spids: [-1 10823] ) (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: [11286] ) ] spids: [11286] ) ] spids: [11270 11283] ) (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: [11308] ) ] spids: [11308] ) ] spids: [11291 11305] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:PKGDETAILS) op:Equal rhs:{(DQ )} spids:[11317])] spids: [11317] ) ] spids: [11314 11321] ) (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: [11340 11344] ) ) } spids: [11338] ) ] spids: [11336] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:PKGS) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [11351] ) ] spids: [11349] ) (Sentence child: (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ALLPKGS) op: Equal rhs: {(DQ ($ VSub_Name '$PKGS'))} spids: [11359] ) ] spids: [11357] ) terminator: <Op_Semi ';'> ) (Sentence child: (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ALLPKGS2) op: Equal rhs: {(DQ )} spids: [11368] ) ] spids: [11366] ) 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: [11396] ) ] spids: [11394] ) (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: [11407 11411] ) } ] do_arg_iter: False 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: [11419] ) ] spids: [11417] ) (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: [11437 11461] ) ) } spids: [11433] ) ] spids: [11431] ) (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: [11469 11481] ) ) } spids: [11465] ) ] spids: [11465] ) ] spids: [11414 11485] ) spids: [11406 11412] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [11489 11517] ) } spids: [11488] ) ] spids: [11488] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:REALPKGS) op: Equal rhs: {(DQ )} spids: [11522] ) ] spids: [11520] ) (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: [11533 11537] ) } ] do_arg_iter: False 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: [11545] ) ] spids: [11543] ) (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: [11563 11587] ) ) } spids: [11559] ) ] spids: [11557] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [11595 11619] ) ) } spids: [11591] ) ] spids: [11591] ) ] spids: [11540 11623] ) spids: [11532 11538] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PKGS) op: Equal rhs: {(DQ ($ VSub_Name '$REALPKGS'))} spids: [11626] ) ] spids: [11626] ) (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: False ) ] ) left_token: <Left_CommandSub '$('> spids: [11633 11661] ) } spids: [11632] ) ] spids: [11632] ) (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: [11665 11675] ) } spids: [11664] ) ] spids: [11664] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALLPKGS) op: Equal rhs: {(DQ ($ VSub_Name '$ALLPKGS2'))} spids: [11678] ) ] spids: [11678] ) ] spids: [11391 11684] ) ) (C {(echo)} {($ VSub_Name '$ALLPKGS')}) ] spids: [11333] ) spids: [11328 11332] ) (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: [11706 11710] ) ) } spids: [11704] ) ] spids: [11702] ) (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: [11721 11725] ) } ] do_arg_iter: False 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: [11733] ) ] spids: [11731] ) (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: [11751 11775] ) ) } spids: [11747] ) ] spids: [11745] ) (C {(DQ ($ VSub_Name '$PKGDETAILS'))} {(STANZAS)} {(DQ ($ VSub_Name '$pkgdest'))} {(DQ ($ VSub_At '$@'))} ) ] spids: [11728 11802] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/available))} spids: [11804] ) ] spids: [11720 11726] ) (Pipeline children: [ (ForEach iter_name: pkg do_arg_iter: True body: (DoGroup children: [(C {(echo)} {(DQ ($ VSub_Name '$pkg') (' install'))})] spids: [11817 11828] ) spids: [-1 -1] ) (C {(in_target)} {(dpkg)} {(--set-selections)}) ] negated: False ) ] spids: [11699] ) spids: [11694 11698] ) (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: [11853 11859] ) ) } spids: [11851] ) ] spids: [11849] ) (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$stanza'))} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] op_id: Op_DPipe ) (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$stanza'))}) (C {(grep)} {(SQ <'^Package:'>)}) (C {(sed)} {(SQ <'s/^Package://; s/^ *//'>)}) ] negated: False ) ] spids: [11846] ) spids: [11841 11845] ) (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: [11943 11949 11952 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (AndOr children: [ (C {(mknod)} {(DQ ($ VSub_Number '$1') (/test-dev-null))} {(c)} {(1)} {(3)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(echo)} {(test)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Number '$1') (/test-dev-null))} spids: [11987] ) ] ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [-1 11995] ) ] spids: [-1 12013] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))}) ] spids: [11955 11956 12026 -1] ) ] spids: [11934 11940 12029] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SH) op:Equal rhs:{(/bin/sh)} spids:[12033])] spids: [12033] ) (AndOr 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: [12048 12052] ) } spids: [12047] ) ] spids: [12047] ) ] op_id: Op_DPipe ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Number '$1') (/test-exec))} spids: [12058] ) (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ('#! ') ($ VSub_Name '$SH') ('\n') (':\n'))} do_expansion: True here_end: EOF was_filled: True spids: [12065] ) ] ) (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: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [-1 12095] ) ] spids: [-1 12113] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [11921] ) spids: [11916 11920] ) (FuncDef name: read_gpg_status body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:badsig) op:Equal rhs:{(SQ )} spids:[12142])] spids: [12142] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:unkkey) op:Equal rhs:{(SQ )} spids:[12145])] spids: [12145] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:validsig) op:Equal rhs:{(SQ )} spids:[12148])] spids: [12148] ) (While cond: [ (Sentence child: (C {(read)} {(prefix)} {(keyword)} {(keyid)} {(rest)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (AndOr children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$prefix'))} {(Lit_Other '=')} {(SQ <'[GNUPG:]'>)} {(Lit_Other ']')} ) (ControlFlow token:<ControlFlow_Continue continue>) ] op_id: Op_DPipe ) (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: [12196] ) ] spids: [12196] ) ] spids: [12193 12194 12201 -1] ) (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: [12207] ) ] spids: [12207] ) ] spids: [12204 12205 12212 -1] ) (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: [12218] ) ] spids: [12218] ) ] spids: [12215 12216 12223 -1] ) ] spids: [12186 12190 12226] ) ] spids: [12164 12229] ) ) (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: [-1 12243] ) (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: [12259 12270] ) (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: [12288 12299] ) ] else_action: [ (C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Error executing gpgv to check Release signature'))}) ] spids: [12317 12331] ) ] spids: [12139] ) spids: [12134 12138] ) (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: False ) terminator: <Op_Semi ';'> ) (Pipeline children: [ (C {(echo)} {($ VSub_Number '$2')} {($ VSub_Number '$2')}) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) ] negated: False ) ] ) spids: [12348 12392] ) (C {(sort)}) (C {(uniq)} {(-u)}) (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)}) ] negated: False ) (C {(echo)}) ] spids: [12341] ) spids: [12336 12340] ) (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: [12435] ) ] spids: [12433] ) (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: [-1 12469] ) ] 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: [12480 12489] ) ) } spids: [12478] ) ] spids: [12478] ) (C {(sleep)} {(1)}) ] spids: [12475 12498] ) ] spids: [12459 12501] ) ) (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: [-1 12519] ) ] spids: [-1 12526] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [12430] ) spids: [12425 12429] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:N_EXIT_THINGS) op:Equal rhs:{(0)} spids:[12536])] spids: [12536] ) (FuncDef name: exit_function body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:n) op:Equal rhs:{(0)} spids:[12549])] spids: [12547] ) (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 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: [12576 12586] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [12588] ) ] ) (C {(true)}) ] op_id: Op_DPipe ) spids: [12573 12594] ) (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: [12599 12608] ) ) } spids: [12597] ) ] spids: [12597] ) ] spids: [12570 12612] ) ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:N_EXIT_THINGS) op:Equal rhs:{(0)} spids:[12615])] spids: [12615] ) ] spids: [12544] ) spids: [12539 12543] ) (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: [12675 12686] ) } ) (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: [12691 12700] ) ) } spids: [12689] ) ] spids: [12689] ) ] spids: [12670] ) spids: [12665 12669] ) (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: [-1 12735] ) ] spids: [-1 12748] ) (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: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/sbin/ldconfig))} spids: [12777] ) ] ) (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: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/diversions))} spids: [12805] ) ] ) (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: -1 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: True spids: [12829] ) (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/usr/bin/ldd))} spids: [12835] ) ] ) (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: -1 arg_word: {(DQ ($ VSub_Name '$TARGET') (/var/lib/dpkg/diversions))} spids: [12863] ) ] ) ] spids: [12715] ) spids: [12710 12714] ) ] )