(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(-ne)} {(DQ (3))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                      left_token: <Left_Backtick '`'>
                      spids: [49 53]
                    ) (' <image_filename> <partition # (1,2,...)> <mount point>')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[57])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 42]
        )
      ]
      spids: [-1 65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:FILE) op:Equal rhs:{($ VSub_Number '$1')} spids:[68])]
      spids: [68]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:PART) op:Equal rhs:{($ VSub_Number '$2')} spids:[71])]
      spids: [71]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DEST) op:Equal rhs:{($ VSub_Number '$3')} spids:[74])]
      spids: [74]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(parted)} {(--version)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [84]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[87])
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UNITS)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(parted)}
                                      {(-s)}
                                      {($ VSub_Name '$FILE')}
                                      {(unit)}
                                      {(s)}
                                      {(print)}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [111]
                                      )
                                    ]
                                  )
                                  (C {(grep)} {(DQ (' ') ($ VSub_Name '$PART') (' '))})
                                  (C {(tr)} {(-d)} {(SQ <s>)})
                                  (C {(awk)} {(SQ <'{print $2}'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [98 142]
                      )
                    }
                  spids: [97]
                )
              ]
              spids: [97]
            )
          ]
          spids: [-1 91]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(fdisk)} {(-v)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [150]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[153])
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UNITS)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (SimpleCommand
                                    words: [{(fdisk)} {(-lu)} {($ VSub_Name '$FILE')}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [168]
                                      )
                                    ]
                                  )
                                  (C {(grep)} {(DQ ($ VSub_Name '$FILE') ($ VSub_Name '$PART') (' '))})
                                  (C {(tr)} {(-d)} {(SQ <'*'>)})
                                  (C {(awk)} {(SQ <'{print $2}'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [161 199]
                      )
                    }
                  spids: [160]
                )
              ]
              spids: [160]
            )
          ]
          spids: [144 157]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [{(echo)} {(DQ ("Can't find the fdisk or parted utils. Are you root?"))}]
          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[210])]
        )
        (C {(exit)} {(1)})
      ]
      spids: [201 218]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:OFFSET)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(expr)} {(512)} {(SQ <'*'>)} {($ VSub_Name '$UNITS')})]
                  )
                left_token: <Left_Backtick '`'>
                spids: [222 232]
              )
            }
          spids: [221]
        )
      ]
      spids: [221]
    )
    (C {(mount)} {(-o)} {(loop) (Lit_Comma ',') (Lit_VarLike 'offset=') ($ VSub_Name '$OFFSET')} 
      {($ VSub_Name '$FILE')} {($ VSub_Name '$DEST')}
    )
  ]
)