(CommandList
  children: [
    (C {(Lit_Other ":")} {(tw)} {(Lit_Other "+")} {(pax)} {(KW_For for)} {(backup)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:command) op:Equal rhs:{(bax)} spids:[85])]
      spids: [85]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:customize)
          op: Equal
          rhs: {(../lib/) (${ VSub_Name command) (/init)}
          spids: [88]
        )
      ]
      spids: [88]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair lhs:(LhsName name:root) op:Equal rhs:{(SQ )} spids:[106])
        (assign_pair lhs:(LhsName name:arch_name) op:Equal rhs:{(SQ )} spids:[108])
        (assign_pair lhs:(LhsName name:arch_keep) op:Equal rhs:{(SQ )} spids:[110])
        (assign_pair lhs:(LhsName name:big_size) op:Equal rhs:{(SQ )} spids:[112])
        (assign_pair lhs:(LhsName name:big_magic_keep) op:Equal rhs:{(SQ )} spids:[114])
      ]
      spids: [106]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair lhs:(LhsName name:name_skip) op:Equal rhs:{(SQ )} spids:[116])
        (assign_pair lhs:(LhsName name:path_skip) op:Equal rhs:{(SQ )} spids:[118])
        (assign_pair lhs:(LhsName name:reg_magic_skip) op:Equal rhs:{(SQ )} spids:[120])
        (assign_pair lhs:(LhsName name:src_name) op:Equal rhs:{(SQ )} spids:[122])
        (assign_pair lhs:(LhsName name:src_magic_skip) op:Equal rhs:{(SQ )} spids:[124])
      ]
      spids: [116]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ifs)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name IFS>
                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ <"\n"> <"\t ">)})
                spids: [128 135]
              )
            }
          spids: [127]
        )
      ]
      spids: [127]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(Lit_Other ":")} spids:[137])]
      spids: [137]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:path) op:Equal rhs:{($ VSub_Name "$PATH")} spids:[140])]
      spids: [140]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{($ VSub_Name "$ifs")} spids:[143])]
      spids: [143]
    )
    (ForEach
      iter_name: dir
      iter_words: [{($ VSub_Name "$path")}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(-f)} {($ VSub_Name "$dir") (/) ($ VSub_Name "$customize")})]
                  action: [
                    (C {(.)} {($ VSub_Name "$dir") (/) ($ VSub_Name "$customize")})
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [-1 167]
                )
              ]
              spids: [-1 179]
            )
          ]
          spids: [154 181]
        )
      spids: [151 -1]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:root)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name root>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ </>)})
                spids: [195 201]
              )
            }
          spids: [194]
        )
      ]
      spids: [194]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arch_name)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name arch_name>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <arch>)})
                spids: [215 221]
              )
            }
          spids: [214]
        )
      ]
      spids: [214]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:arch_keep)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name arch_keep>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <"bin|fun|lib">)})
                spids: [224 230]
              )
            }
          spids: [223]
        )
      ]
      spids: [223]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:big_size)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name big_size>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(5000000)})
                spids: [244 248]
              )
            }
          spids: [243]
        )
      ]
      spids: [243]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:big_magic_keep)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name big_magic_keep>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <mail>)})
                spids: [251 257]
              )
            }
          spids: [250]
        )
      ]
      spids: [250]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:name_skip)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name name_skip>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(SQ <"?(*.)(old|save|tmp)?(.*)|.*-cache">)}
                  )
                spids: [274 280]
              )
            }
          spids: [273]
        )
      ]
      spids: [273]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:path_skip)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name path_skip>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(SQ <"/dev|/usr/local/ast/ship">)}
                  )
                spids: [283 289]
              )
            }
          spids: [282]
        )
      ]
      spids: [282]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:reg_magic_skip)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name reg_magic_skip>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(SQ <"core|cql * index|history|TeX dvi">)}
                  )
                spids: [303 309]
              )
            }
          spids: [302]
        )
      ]
      spids: [302]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:src_name)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name src_name>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ <src>)})
                spids: [323 329]
              )
            }
          spids: [322]
        )
      ]
      spids: [322]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:src_magic_skip)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name src_magic_skip>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(SQ <"executable|object|(archive|shared) library">)}
                  )
                spids: [332 338]
              )
            }
          spids: [331]
        )
      ]
      spids: [331]
    )
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "[") (01) (Lit_Other "]")}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("Usage: ") ($ VSub_Name "$command") (" delta base [dir ...]"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[360])]
            )
            (C {(exit)} {(2)})
          ]
          spids: [347 350 369 -1]
        )
      ]
      spids: [341 345 371]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:delta) op:Equal rhs:{($ VSub_Number "$1")} spids:[373])]
      spids: [373]
    )
    (C {(shift)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:base) op:Equal rhs:{($ VSub_Number "$2")} spids:[378])]
      spids: [378]
    )
    (C {(shift)})
    (Case
      to_match: {($ VSub_Pound "$#")}
      arms: [
        (case_arm
          pat_list: [{(0)}]
          action: [(C {(set)} {($ VSub_Name "$root")})]
          spids: [389 390 396 -1]
        )
      ]
      spids: [383 387 398]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dirs) op:Equal rhs:{(SQ )} spids:[400])]
      spids: [400]
    )
    (While
      cond: [(C {(Lit_Other ":")})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Pound "$#")}
              arms: [
                (case_arm
                  pat_list: [{(0)}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [415 416 420 -1]
                )
              ]
              spids: [408 412 423]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dirs)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$dirs") (" -d ") ($ VSub_Number "$1"))}
                  spids: [426]
                )
              ]
              spids: [426]
            )
            (C {(shift)})
          ]
          spids: [406 436]
        )
    )
    (Pipeline
      children: [
        (C {(tw)} {($ VSub_Name "$dirs")} {(-mH)} {(-e)} 
          {
            (DQ ("\n") ("\n") ("begin:\tint\tarch_bit = 1;\n") ("\tint\tsrc_bit = 2;\n") 
              ("\tchar*\tm;\n") ("\n") ("sort:\tname;\n") ("\n") ("select:\tif (name == '") (${ VSub_Name name_skip) ("')\n") 
              ("\t\tstatus = SKIP;\n") ("\telse if (type == REG)\n") ("\t{\n") ("\t\tm = magic;\n") ("\t\tif (size > ") (${ VSub_Name big_size) 
              (" && m != '*@(") (${ VSub_Name big_magic_keep) (")*' ||\n") ("\t\t    m == '*@(") (${ VSub_Name reg_magic_skip) 
              (")*' ||\n") ("\t\t    (parent.local & src_bit) && m == '*@(") (${ VSub_Name src_magic_skip) (")*')\n") 
              ("\t\t\tstatus = SKIP;\n") ("\t}\n") ("\telse if (type == DIR)\n") ("\t{\n") ("\t\tlocal = (parent.local & src_bit);\n") 
              ("\t\tif (dev != parent.dev || path == '") (${ VSub_Name path_skip) ("' || (parent.parent.local & arch_bit) && name != '") 
              (${ VSub_Name arch_keep) ("')\n") ("\t\t\tstatus = SKIP;\n") ("\t\telse if (name == '") (${ VSub_Name arch_name) ("')\n") 
              ("\t\t\tlocal |= arch_bit;\n") ("\t\telse if (name == '") (${ VSub_Name src_name) ("')\n") ("\t\t\tlocal |= src_bit;\n") ("\t}\n") 
              ("\treturn 1;\n")
            )
          }
        )
        (C {(pax)} {(-o)} 
          {
            (DQ ("write ordered physical verbose file=") ($ VSub_Name "$delta") (" base=") 
              ($ VSub_Name "$base")
            )
          }
        )
      ]
      negated: False
    )
  ]
)