(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(Lit_Other "=") (Lit_Other "=")} {(DQ (-d))} 
              {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LeftVar name:DELETE) rhs:{(1)} spids:[28])]
                  spids: [28]
                )
                (C {(shift)})
              ]
            )
          spids: [-1 25]
        )
      ]
      spids: [-1 34]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:ZAP)
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (SimpleCommand
                    words: [{(readlink)} {(-f)} {(DQ ($ VSub_Number "$1"))}]
                    redirects: [(Redirect op_id:Redir_Great arg_word:{(/dev/null)} fd:2 spids:[51])]
                  )
                spids: [42 53]
              )
            }
          spids: [41]
        )
      ]
      spids: [41]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$ZAP"))} {(Lit_Other "]")})
          action: 
            (CommandList
              children: [(C {(echo)} {(DQ ("usage: zapchroot [-d] dirname"))}) (C {(exit)} {(1)})]
            )
          spids: [-1 70]
        )
      ]
      spids: [-1 84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:i)
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (C {(readlink)} {(-f)} {(DQ (CommandSubPart command_list:(C {(pwd)}) spids:[9597]))})
                  spids: [89 99]
                )
              )
            }
          spids: [87]
        )
      ]
      spids: [87]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ZAP"))} {(Lit_Other "=") (Lit_Other "=")} 
              {
                (DQ 
                  (BracedVarSub
                    token: <VSub_Name i>
                    suffix_op: 
                      (Slice
                        begin: (ArithWord w:{(Lit_Digits 0)})
                        length: 
                          (ArithWord
                            w: 
                              {
                                (BracedVarSub
                                  token: <VSub_Name ZAP>
                                  prefix_op: VSub_Pound
                                  spids: [119 122]
                                )
                              }
                          )
                      )
                    spids: [114 123]
                  )
                )
              } {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ("Sanity check failed: cwd is under zapdir"))}]
                  redirects: [(Redirect op_id:Redir_GreatAnd arg_word:{(2)} fd:-1 spids:[137])]
                )
                (C {(exit)} {(1)})
              ]
            )
          spids: [-1 128]
        )
      ]
      spids: [-1 145]
    )
    (ForEach
      iter_name: i
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (Pipeline
                children: [(C {(awk)} {(SQ <"{print $2}">)} {(/proc/mounts)}) (C {(tac)})]
                negated: False
              )
            spids: [158 170]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          child: 
            (CommandList
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LeftVar name:i)
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: (C {(echo)} {(-e)} {(DQ ($ VSub_Name "$i"))})
                            spids: [180 188]
                          )
                        }
                      spids: [179]
                    )
                  ]
                  spids: [179]
                )
                (AndOr
                  children: [
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ZAP"))} {(KW_Bang "!") (Lit_Other "=")} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name i>
                            suffix_op: 
                              (Slice
                                begin: (ArithWord w:{(Lit_Digits 0)})
                                length: 
                                  (ArithWord
                                    w: 
                                      {
                                        (BracedVarSub
                                          token: <VSub_Name ZAP>
                                          prefix_op: VSub_Pound
                                          spids: [211 214]
                                        )
                                      }
                                  )
                              )
                            spids: [206 215]
                          )
                        )
                      } {(Lit_Other "]")}
                    )
                    (C {(continue)})
                  ]
                  op_id: Op_DAmp
                )
                (C {(echo)} {(DQ ("Umounting: ") ($ VSub_Name "$i"))})
                (C {(umount)} {(DQ ($ VSub_Name "$i"))})
              ]
            )
          spids: [172 240]
        )
      spids: [157 -1]
    )
  ]
)