(CommandList
  children: [
    (Sentence
      child: 
        (FuncDef
          name: mount_partition
          body: 
            (BraceGroup
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Number 1))} {(-o)} {(-z)} 
                          {(DQ (${ VSub_Number 2))} {(-o)} {(-z)} {(DQ (${ VSub_Number 3))} {(Lit_Other ']')}
                        )
                      ]
                      action: [(C {(exit_err)} {(DQ ('ERROR: Missing arguments for mount_partition'))})]
                      spids: [16777215 128]
                    )
                  ]
                  spids: [16777215 138]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PART)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 1))}
                      spids: [142]
                    )
                  ]
                  spids: [142]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:PARTFS)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 2))}
                      spids: [150]
                    )
                  ]
                  spids: [150]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:MNTPOINT)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 3))}
                      spids: [158]
                    )
                  ]
                  spids: [158]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:MNTFLAGS)
                      op: Equal
                      rhs: {(DQ (${ VSub_Number 4))}
                      spids: [166]
                    )
                  ]
                  spids: [166]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name MNTOPTS))} {(Lit_Other ']')})
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:MNTFLAGS)
                              op: Equal
                              rhs: {(DQ ('-o rw'))}
                              spids: [197]
                            )
                          ]
                          spids: [197]
                        )
                      ]
                      spids: [16777215 194]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MNTFLAGS)
                          op: Equal
                          rhs: {(DQ ('-o rw,') (${ VSub_Name MNTFLAGS))}
                          spids: [206]
                        )
                      ]
                      spids: [206]
                    )
                  ]
                  spids: [203 215]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name PARTFS))} {(Lit_Other '=')} {(DQ (ZFS))} 
                          {(Lit_Other ']')}
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ZPOOLNAME)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [(C {(get_zpool_name)} {(DQ (${ VSub_Name PART))})]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [247 255]
                                  )
                                }
                              spids: [246]
                            )
                          ]
                          spids: [246]
                        )
                        (ForEach
                          iter_name: ZMNT
                          iter_words: [
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(${ VSub_Name MNTPOINT)})
                                          (C {(sed)} {(SQ <'s|,| |g'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [269 283]
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ZMNTOPTS)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {($ VSub_Name '$ZMNT')})
                                                        (C {(cut)} {(-d)} {(SQ <'('>)} {(-f)} {(2)})
                                                        (C {(cut)} {(-d)} {(SQ <')'>)} {(-f)} {(1)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [295 327]
                                            )
                                          )
                                        }
                                      spids: [293]
                                    )
                                  ]
                                  spids: [293]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ZMNTOPTS'))} 
                                              {(Lit_Other '=')} {(DQ ($ VSub_Name '$ZMNT'))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Sentence
                                          child: 
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:ZMNTOPTS)
                                                  op: Equal
                                                  rhs: {(DQ )}
                                                  spids: [352]
                                                )
                                              ]
                                              spids: [352]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      spids: [16777215 350]
                                    )
                                  ]
                                  spids: [16777215 358]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:ZMNT)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} {($ VSub_Name '$ZMNT')})
                                                        (C {(cut)} {(-d)} {(SQ <'('>)} {(-f)} {(1)})
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_Backtick '`'>
                                              spids: [368 386]
                                            )
                                          )
                                        }
                                      spids: [366]
                                    )
                                  ]
                                  spids: [366]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                                              {(DQ (${ VSub_Name FSMNT) (${ VSub_Name ZMNT))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (SimpleCommand
                                          words: [
                                            {(mkdir)}
                                            {(-p)}
                                            {(${ VSub_Name FSMNT) (${ VSub_Name ZMNT)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_DGreat
                                              fd: 16777215
                                              arg_word: {(${ VSub_Name LOGOUT)}
                                              spids: [430]
                                            )
                                            (Redir
                                              op_id: Redir_DGreat
                                              fd: 2
                                              arg_word: {(${ VSub_Name LOGOUT)}
                                              spids: [435]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [16777215 416]
                                    )
                                  ]
                                  spids: [16777215 441]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:zcopt)
                                      op: Equal
                                      rhs: {(DQ )}
                                      spids: [449]
                                    )
                                  ]
                                  spids: [449]
                                )
                                (ForEach
                                  iter_name: ZOPT
                                  iter_words: [
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {($ VSub_Name '$ZMNTOPTS')})
                                                  (C {(sed)} {(SQ <'s/|/ /g'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [460 472]
                                      )
                                    }
                                  ]
                                  do_arg_iter: F
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name '$ZOPT'))})
                                            (C {(grep)} {(-q)} {(volsize)})
                                          ]
                                          negated: F
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} 
                                                      {(0)} {(Lit_Other ']')}
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:volsize)
                                                      op: Equal
                                                      rhs: 
                                                        {
                                                          (CommandSubPart
                                                            command_list: 
                                                              (CommandList
                                                                children: [
                                                                  (Pipeline
                                                                    children: [
                                                                      (C {(echo)} 
                                                                        {($ VSub_Name '$ZOPT')}
                                                                      )
                                                                      (C {(cut)} {(-d)} {(SQ <'='>)} 
                                                                        {(-f)} {(2)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                            left_token: <Left_Backtick '`'>
                                                            spids: [511 529]
                                                          )
                                                        }
                                                      spids: [510]
                                                    )
                                                  ]
                                                  spids: [510]
                                                )
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:zcopt)
                                                      op: Equal
                                                      rhs: {(DQ ('-V ') ($ VSub_Name '$volsize'))}
                                                      spids: [532]
                                                    )
                                                  ]
                                                  spids: [532]
                                                )
                                              ]
                                              spids: [16777215 507]
                                            )
                                          ]
                                          spids: [16777215 539]
                                        )
                                      ]
                                      spids: [475 542]
                                    )
                                  spids: [459 16777215]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ (${ VSub_Name ZMNT))} 
                                              {(Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:ZNAME)
                                              op: Equal
                                              rhs: {(DQ (/ROOT/default))}
                                              spids: [573]
                                            )
                                          ]
                                          spids: [573]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:ZMKMNT)
                                              op: Equal
                                              rhs: {(DQ )}
                                              spids: [579]
                                            )
                                          ]
                                          spids: [579]
                                        )
                                        (C {(echo_log)} 
                                          {
                                            (DQ ('zfs create ') ($ VSub_Name '$zcopt') (' -p ') 
                                              (${ VSub_Name ZPOOLNAME) (/ROOT)
                                            )
                                          }
                                        )
                                        (C {(rc_halt)} 
                                          {
                                            (DQ ('zfs create ') ($ VSub_Name '$zcopt') (' -p ') 
                                              (${ VSub_Name ZPOOLNAME) (/ROOT)
                                            )
                                          }
                                        )
                                        (C {(echo_log)} 
                                          {
                                            (DQ ('zfs create ') ($ VSub_Name '$zcopt') (' -p ') 
                                              (${ VSub_Name ZPOOLNAME) (${ VSub_Name ZNAME)
                                            )
                                          }
                                        )
                                        (C {(rc_halt)} 
                                          {
                                            (DQ ('zfs create ') ($ VSub_Name '$zcopt') (' -p ') 
                                              (${ VSub_Name ZPOOLNAME) (${ VSub_Name ZNAME)
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 566]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:ZNAME)
                                          op: Equal
                                          rhs: {(DQ (${ VSub_Name ZMNT))}
                                          spids: [643]
                                        )
                                      ]
                                      spids: [643]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:ZMKMNT)
                                          op: Equal
                                          rhs: {(DQ (${ VSub_Name ZMNT))}
                                          spids: [651]
                                        )
                                      ]
                                      spids: [651]
                                    )
                                    (C {(echo_log)} 
                                      {
                                        (DQ ('zfs create ') ($ VSub_Name '$zcopt') (' -p ') 
                                          (${ VSub_Name ZPOOLNAME) (${ VSub_Name ZNAME)
                                        )
                                      }
                                    )
                                    (C {(rc_halt)} 
                                      {
                                        (DQ ('zfs create ') ($ VSub_Name '$zcopt') (' -p ') 
                                          (${ VSub_Name ZPOOLNAME) (${ VSub_Name ZNAME)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [640 689]
                                )
                                (C {(sleep)} {(2)})
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$zcopt'))} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(rc_halt)} 
                                          {
                                            (DQ ('zfs set mountpoint=') (${ VSub_Name FSMNT) 
                                              (${ VSub_Name ZMKMNT) (' ') (${ VSub_Name ZPOOLNAME) (${ VSub_Name ZNAME)
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 711]
                                    )
                                  ]
                                  spids: [16777215 734]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ZMNT'))} 
                                              {(Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(echo_log)} 
                                          {
                                            (DQ ('Stamping ') (${ VSub_Name ZPOOLNAME) 
                                              ('/ROOT/default as bootfs')
                                            )
                                          }
                                        )
                                        (C {(rc_halt)} 
                                          {
                                            (DQ ('zpool set bootfs=') (${ VSub_Name ZPOOLNAME) 
                                              ('/ROOT/default ') (${ VSub_Name ZPOOLNAME)
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 760]
                                    )
                                  ]
                                  spids: [16777215 788]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$ZMNT'))} 
                                              {(Lit_Other '=')} {(DQ (/boot))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(echo_log)} 
                                          {
                                            (DQ ('Stamping ') (${ VSub_Name ZPOOLNAME) 
                                              (${ VSub_Name ZMNT) (' as bootfs')
                                            )
                                          }
                                        )
                                        (C {(rc_halt)} 
                                          {
                                            (DQ ('zpool set bootfs=') (${ VSub_Name ZPOOLNAME) 
                                              (${ VSub_Name ZMNT) (' ') (${ VSub_Name ZPOOLNAME)
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 814]
                                    )
                                  ]
                                  spids: [16777215 848]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$ZMNTOPTS'))} 
                                              {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Sentence
                                          child: (ControlFlow token:<ControlFlow_Continue continue>)
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      spids: [16777215 870]
                                    )
                                  ]
                                  spids: [16777215 876]
                                )
                                (ForEach
                                  iter_name: ZOPT
                                  iter_words: [
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(echo)} {($ VSub_Name '$ZMNTOPTS')})
                                                  (C {(sed)} {(SQ <'s/|/ /g'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [890 902]
                                      )
                                    }
                                  ]
                                  do_arg_iter: F
                                  body: 
                                    (DoGroup
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(echo)} {(DQ ($ VSub_Name '$ZOPT'))})
                                            (C {(grep)} {(-q)} {(volsize)})
                                          ]
                                          negated: F
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} 
                                                      {(0)} {(Lit_Other ']')}
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (Sentence
                                                  child: 
                                                    (ControlFlow
                                                      token: <ControlFlow_Continue continue>
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              spids: [16777215 937]
                                            )
                                          ]
                                          spids: [16777215 943]
                                        )
                                        (C {(rc_halt)} 
                                          {
                                            (DQ ('zfs set ') ($ VSub_Name '$ZOPT') (' ') 
                                              (${ VSub_Name ZPOOLNAME) (${ VSub_Name ZNAME)
                                            )
                                          }
                                        )
                                      ]
                                      spids: [905 961]
                                    )
                                  spids: [889 16777215]
                                )
                              ]
                              spids: [286 964]
                            )
                          spids: [268 16777215]
                        )
                      ]
                      spids: [16777215 243]
                    )
                  ]
                  else_action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name FSMNT) (${ VSub_Name MNTPOINT))} {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(mkdir)} {(-p)} {(${ VSub_Name FSMNT) (${ VSub_Name MNTPOINT)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(${ VSub_Name LOGOUT)}
                                  spids: [1016]
                                )
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 2
                                  arg_word: {(${ VSub_Name LOGOUT)}
                                  spids: [1021]
                                )
                              ]
                            )
                          ]
                          spids: [16777215 1002]
                        )
                      ]
                      spids: [16777215 1027]
                    )
                    (C {(echo_log)} 
                      {
                        (DQ ('mount ') (${ VSub_Name MNTFLAGS) (' ') (${ VSub_Name PART) (' -> ') 
                          (${ VSub_Name FSMNT) (${ VSub_Name MNTPOINT)
                        )
                      }
                    )
                    (C {(sleep)} {(2)})
                    (C {(rc_halt)} 
                      {
                        (DQ ('mount ') (${ VSub_Name MNTFLAGS) (' ') (${ VSub_Name PART) (' ') 
                          (${ VSub_Name FSMNT) (${ VSub_Name MNTPOINT)
                        )
                      }
                    )
                  ]
                  spids: [971 1078]
                )
              ]
              spids: [90]
            )
          spids: [86 89]
        )
      terminator: <Op_Semi ';'>
    )
    (Sentence
      child: 
        (FuncDef
          name: mount_all_filesystems
          body: 
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(mkdir)} {(-p)} {(${ VSub_Name FSMNT)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [1107]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(/dev/null)}
                      spids: [1110]
                    )
                  ]
                )
                (ForEach
                  iter_name: PART
                  iter_words: [
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(ls)} {(${ VSub_Name PARTDIR)})])
                        left_token: <Left_Backtick '`'>
                        spids: [1129 1135]
                      )
                    }
                  ]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTDEV)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {($ VSub_Name '$PART')})
                                              (C {(sed)} {(SQ <'s|-|/|g'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [1142 1154]
                                  )
                                }
                              spids: [1141]
                            )
                          ]
                          spids: [1141]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTFS)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(cat)} 
                                                  {(${ VSub_Name PARTDIR) (/) (${ VSub_Name PART)}
                                                )
                                                (C {(cut)} {(-d)} {(SQ <'#'>)} {(-f)} {(1)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1160 1184]
                                    )
                                  )
                                }
                              spids: [1158]
                            )
                          ]
                          spids: [1158]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ (${ VSub_Name PARTDEV))} 
                                  {(-a)} {(DQ (${ VSub_Name PARTFS))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (ZFS))} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (C {(exit_err)} 
                                  {
                                    (DQ ('ERROR: The partition ') (${ VSub_Name PARTDEV) 
                                      (' does not exist. Failure in bsdlabel?')
                                    )
                                  }
                                )
                              ]
                              spids: [16777215 1220]
                            )
                          ]
                          spids: [16777215 1234]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTMNT)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(cat)} 
                                                  {(${ VSub_Name PARTDIR) (/) (${ VSub_Name PART)}
                                                )
                                                (C {(cut)} {(-d)} {(SQ <'#'>)} {(-f)} {(2)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1241 1265]
                                    )
                                  )
                                }
                              spids: [1239]
                            )
                          ]
                          spids: [1239]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTENC)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(cat)} 
                                                  {(${ VSub_Name PARTDIR) (/) (${ VSub_Name PART)}
                                                )
                                                (C {(cut)} {(-d)} {(SQ <'#'>)} {(-f)} {(3)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1271 1295]
                                    )
                                  )
                                }
                              spids: [1269]
                            )
                          ]
                          spids: [1269]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name PARTENC))} {(Lit_Other '=')} 
                                  {(DQ (ON))} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:EXT)
                                      op: Equal
                                      rhs: {(DQ (.eli))}
                                      spids: [1322]
                                    )
                                  ]
                                  spids: [1322]
                                )
                              ]
                              spids: [16777215 1319]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:EXT)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [1331]
                                )
                              ]
                              spids: [1331]
                            )
                          ]
                          spids: [1328 1336]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$PARTMNT'))})
                            (SimpleCommand
                              words: [{(grep)} {(DQ ('/,'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [1358]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_QMark '$?'))} {(Lit_Other '=')} 
                                  {(DQ (0))} {(-o)} {(DQ ($ VSub_Name '$PARTMNT'))} {(Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (Case
                                  to_match: {(${ VSub_Name PARTFS)}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(UFS)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ (noatime))}
                                        )
                                      ]
                                      spids: [1403 1404 1427 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(UFS) (Lit_Other '+') (S)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ (noatime))}
                                        )
                                      ]
                                      spids: [1430 1433 1456 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(UFS) (Lit_Other '+') (SUJ)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ (noatime))}
                                        )
                                      ]
                                      spids: [1459 1462 1485 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(UFS) (Lit_Other '+') (J)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT) (.journal)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ ('async,noatime'))}
                                        )
                                      ]
                                      spids: [1488 1491 1515 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(ZFS)}]
                                      action: [
                                        (C {(mount_partition)} {(${ VSub_Name PARTDEV)} 
                                          {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)}
                                        )
                                      ]
                                      spids: [1518 1519 1535 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(IMAGE)}]
                                      action: [
                                        (C {(mount_partition)} {(${ VSub_Name PARTDEV)} 
                                          {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)}
                                        )
                                      ]
                                      spids: [1538 1539 1555 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      action: [
                                        (C {(exit_err)} 
                                          {
                                            (DQ ('ERROR: Got unknown file-system type ') 
                                              ($ VSub_Name '$PARTFS')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [1558 1559 1568 16777215]
                                    )
                                  ]
                                  spids: [1394 1400 1571]
                                )
                              ]
                              spids: [16777215 1391]
                            )
                          ]
                          spids: [16777215 1574]
                        )
                      ]
                      spids: [1138 1577]
                    )
                  spids: [1128 16777215]
                )
                (ForEach
                  iter_name: PART
                  iter_words: [
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(ls)} {(${ VSub_Name PARTDIR)})])
                        left_token: <Left_Backtick '`'>
                        spids: [1595 1601]
                      )
                    }
                  ]
                  do_arg_iter: F
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTDEV)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(echo)} {($ VSub_Name '$PART')})
                                              (C {(sed)} {(SQ <'s|-|/|g'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [1608 1620]
                                  )
                                }
                              spids: [1607]
                            )
                          ]
                          spids: [1607]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTFS)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(cat)} 
                                                  {(${ VSub_Name PARTDIR) (/) (${ VSub_Name PART)}
                                                )
                                                (C {(cut)} {(-d)} {(SQ <'#'>)} {(-f)} {(1)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1625 1649]
                                    )
                                  )
                                }
                              spids: [1623]
                            )
                          ]
                          spids: [1623]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ (${ VSub_Name PARTDEV))} 
                                  {(-a)} {(DQ (${ VSub_Name PARTFS))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (ZFS))} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (C {(exit_err)} 
                                  {
                                    (DQ ('ERROR: The partition ') (${ VSub_Name PARTDEV) 
                                      (' does not exist. Failure in bsdlabel?')
                                    )
                                  }
                                )
                              ]
                              spids: [16777215 1685]
                            )
                          ]
                          spids: [16777215 1699]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTMNT)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(cat)} 
                                                  {(${ VSub_Name PARTDIR) (/) (${ VSub_Name PART)}
                                                )
                                                (C {(cut)} {(-d)} {(SQ <'#'>)} {(-f)} {(2)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1707 1731]
                                    )
                                  )
                                }
                              spids: [1705]
                            )
                          ]
                          spids: [1705]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PARTENC)
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(cat)} 
                                                  {(${ VSub_Name PARTDIR) (/) (${ VSub_Name PART)}
                                                )
                                                (C {(cut)} {(-d)} {(SQ <'#'>)} {(-f)} {(3)})
                                              ]
                                              negated: F
                                            )
                                          ]
                                        )
                                      left_token: <Left_Backtick '`'>
                                      spids: [1737 1761]
                                    )
                                  )
                                }
                              spids: [1735]
                            )
                          ]
                          spids: [1735]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name PARTENC))} {(Lit_Other '=')} 
                                  {(DQ (ON))} {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:EXT)
                                      op: Equal
                                      rhs: {(DQ (.eli))}
                                      spids: [1788]
                                    )
                                  ]
                                  spids: [1788]
                                )
                              ]
                              spids: [16777215 1785]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:EXT)
                                  op: Equal
                                  rhs: {(DQ )}
                                  spids: [1797]
                                )
                              ]
                              spids: [1797]
                            )
                          ]
                          spids: [1794 1802]
                        )
                        (Pipeline
                          children: [
                            (C {(echo)} {(DQ ($ VSub_Name '$PARTMNT'))})
                            (SimpleCommand
                              words: [{(grep)} {(DQ ('/,'))}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                  spids: [1824]
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (C {(Lit_Other '[')} {(DQ ($ VSub_QMark '$?'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ (0))} {(-a)} {(DQ ($ VSub_Name '$PARTMNT'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (/))} 
                                  {(Lit_Other ']')}
                                )
                              ]
                              action: [
                                (Case
                                  to_match: {(${ VSub_Name PARTFS)}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(UFS)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ (noatime))}
                                        )
                                      ]
                                      spids: [1871 1872 1895 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(UFS) (Lit_Other '+') (S)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ (noatime))}
                                        )
                                      ]
                                      spids: [1898 1901 1924 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(UFS) (Lit_Other '+') (SUJ)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ (noatime))}
                                        )
                                      ]
                                      spids: [1927 1930 1953 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(UFS) (Lit_Other '+') (J)}]
                                      action: [
                                        (C {(mount_partition)} 
                                          {(${ VSub_Name PARTDEV) (${ VSub_Name EXT) (.journal)} {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)} {(DQ ('async,noatime'))}
                                        )
                                      ]
                                      spids: [1956 1959 1983 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(ZFS)}]
                                      action: [
                                        (C {(mount_partition)} {(${ VSub_Name PARTDEV)} 
                                          {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)}
                                        )
                                      ]
                                      spids: [1986 1987 2003 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(SWAP)}]
                                      action: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$PARTENC'))} 
                                                  {(Lit_Other '=')} {(DQ (ON))} {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (C {(echo_log)} 
                                                  {
                                                    (DQ ('Enabling encrypted swap on ') 
                                                      (${ VSub_Name PARTDEV)
                                                    )
                                                  }
                                                )
                                                (C {(rc_halt)} 
                                                  {
                                                    (DQ ('geli onetime -d -e 3des ') 
                                                      (${ VSub_Name PARTDEV)
                                                    )
                                                  }
                                                )
                                                (C {(sleep)} {(5)})
                                                (C {(rc_halt)} 
                                                  {(DQ ('swapon ') (${ VSub_Name PARTDEV) (.eli))}
                                                )
                                              ]
                                              spids: [16777215 2031]
                                            )
                                          ]
                                          else_action: [
                                            (C {(echo_log)} {(DQ ('swapon ') (${ VSub_Name PARTDEV))})
                                            (C {(sleep)} {(5)})
                                            (C {(rc_halt)} {(DQ ('swapon ') (${ VSub_Name PARTDEV))})
                                          ]
                                          spids: [2070 2098]
                                        )
                                      ]
                                      spids: [2006 2007 2101 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(IMAGE)}]
                                      action: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                                                  {(DQ (${ VSub_Name PARTMNT))} {(Lit_Other ']')}
                                                )
                                              ]
                                              action: [
                                                (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name PARTMNT))})
                                              ]
                                              spids: [16777215 2125]
                                            )
                                          ]
                                          spids: [16777215 2140]
                                        )
                                        (C {(mount_partition)} {(${ VSub_Name PARTDEV)} 
                                          {(${ VSub_Name PARTFS)} {(${ VSub_Name PARTMNT)}
                                        )
                                      ]
                                      spids: [2104 2105 2159 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      action: [
                                        (C {(exit_err)} 
                                          {
                                            (DQ ('ERROR: Got unknown file-system type ') 
                                              ($ VSub_Name '$PARTFS')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [2162 2163 2172 16777215]
                                    )
                                  ]
                                  spids: [1862 1868 2175]
                                )
                              ]
                              spids: [16777215 1859]
                            )
                          ]
                          spids: [16777215 2178]
                        )
                      ]
                      spids: [1604 2181]
                    )
                  spids: [1594 16777215]
                )
              ]
              spids: [1092]
            )
          spids: [1088 1091]
        )
      terminator: <Op_Semi ';'>
    )
  ]
)