(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PATH)
          op: Equal
          rhs: {($ VSub_DollarName '$PATH') (Lit_Other ':') (/usr/local/bin)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:XBIN) op:Equal rhs:{(usr/xbin)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:SRC) op:Equal rhs:{(src)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:TMPKB) op:Equal rhs:{(32000)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PACKAGEDIR)
          op: Equal
          rhs: {(/usr/bigports/Packages)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PACKAGESOURCEDIR)
          op: Equal
          rhs: {(/usr/bigports/Sources)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:PACKAGELIST) op:Equal rhs:{(packages.install)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PACKAGESOURCELIST)
          op: Equal
          rhs: {(package_sources.install)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:secs)
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [(C {(expr)} {(32)} {(SQ <'*'>)} {(64)})]
                  )
                left_token: <Left_Backtick '`'>
              )
            }
        )
      ]
    )
    (C {(export)} {(Lit_VarLike 'SHELL=') (/bin/sh)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:TRUNK)
          op: Equal
          rhs: {(https) (Lit_Other ':') (//gforge.cs.vu.nl/svn/minix/trunk)}
        )
      ]
    )
    (command.FuncDef
      name: make_hdimage
      body: 
        (command.BraceGroup
          children: [
            (C {(dd)} {(Lit_VarLike 'if=') ($ VSub_DollarName '$TMPDISK1')} 
              {(Lit_VarLike 'of=') (usrimage)} {(Lit_VarLike 'bs=') ($ VSub_DollarName '$BS')} 
              {(Lit_VarLike 'count=') ($ VSub_DollarName '$USRBLOCKS')}
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:rootsize)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(stat)} {(-size)} {(rootimage)})]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:usrsize)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(stat)} {(-size)} {(usrimage)})]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:rootsects)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(expr)} {($ VSub_DollarName '$rootsize')} {(/)} {(512)})]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:usrsects)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(expr)} {($ VSub_DollarName '$usrsize')} {(/)} {(512)})]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.SimpleCommand
              words: [{(dd)} {(Lit_VarLike 'count=') (2)}]
              redirects: [
                (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/zero)})
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(tmpimage)})
              ]
            )
            (C {(partition)} {(-fm)} {(tmpimage)} {(2)} 
              {(81) (Lit_Other ':') ($ VSub_DollarName '$rootsects') (Lit_Other '*')} {(0) (Lit_Other ':') (0)} {(81) (Lit_Other ':') ($ VSub_DollarName '$usrsects')}
            )
            (C {(installboot)} {(-m)} {(tmpimage)} {(/usr/mdec/masterboot)})
            (command.SimpleCommand
              words: [{(dd)} {(Lit_VarLike 'count=') (1)}]
              redirects: [
                (redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(tmpimage)})
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(subpart)})
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:primsects)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {(1)} {(Lit_Other '+')} {($ VSub_DollarName '$rootsects')} 
                                {(Lit_Other '+')} {($ VSub_DollarName '$usrsects')}
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:cyl)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {(SQ <'('>)} {($ VSub_DollarName '$primsects')} {(SQ <')'>)} 
                                {(/)} {($ VSub_DollarName '$secs')} {(Lit_Other '+')} {(1)}
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:padsects)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {($ VSub_DollarName '$cyl')} 
                                {(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\*'>)} {($ VSub_DollarName '$secs')} {(-)} {(1)} {(-)} {($ VSub_DollarName '$primsects')}
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                      )
                    }
                )
              ]
            )
            (command.BraceGroup
              children: [
                (command.SimpleCommand
                  words: [{(dd)} {(Lit_VarLike 'count=') (1)}]
                  redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/zero)})]
                )
                (C {(cat)} {(subpart)})
                (C {(cat)} {(rootimage)})
                (C {(cat)} {(usrimage)})
                (command.SimpleCommand
                  words: [{(dd)} {(Lit_VarLike 'count=') ($ VSub_DollarName '$padsects')}]
                  redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/dev/zero)})]
                )
              ]
              redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(hdimage)})]
            )
            (C {(partition)} {(-m)} {(hdimage)} 
              {(81) (Lit_Other ':') 
                (word_part.CommandSubPart
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(expr)} {($ VSub_DollarName '$primsects')} {(Lit_Other '+')} 
                          {($ VSub_DollarName '$padsects')}
                        )
                      ]
                    )
                  left_token: <Left_Backtick '`'>
                ) (Lit_Other '*')
              }
            )
            (C {(installboot)} {(-m)} {(hdimage)} {(/usr/mdec/masterboot)})
          ]
        )
    )
    (command.FuncDef
      name: retrieve
      body: 
        (command.BraceGroup
          children: [
            (command.Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dir) op:Equal rhs:{($ VSub_Number '$1')})]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:list)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: (command.CommandList children:[(C {(pwd)})])
                        left_token: <Left_Backtick '`'>
                      ) (/) ($ VSub_Number '$2')
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:url)
                  op: Equal
                  rhs: {(http) (Lit_Other ':') (//www.minix3.org/) ($ VSub_Number '$3')}
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(lhs_expr.LhsName name:BIGPORTS) op:Equal rhs:{(bigports)})]
            )
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(cd)} {($ VSub_DollarName '$dir')})
                        (command.ControlFlow
                          token: <ControlFlow_Exit exit>
                          arg_word: {(1)}
                        )
                      ]
                    )
                    (C {(echo)} 
                      {
                        (DQ (' * Updating ') ($ VSub_DollarName '$dir') ('\n') ('   from ') 
                          ($ VSub_DollarName '$url') ('\n') ('   with ') ($ VSub_DollarName '$list')
                        )
                      }
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:files)
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.SimpleCommand
                                        words: [
                                          {(awk)}
                                          {(SQ <'{ print "'>) ($ VSub_DollarName '$url') 
                                            (SQ <'/" $1 ".tar.bz2" }'>)
                                          }
                                        ]
                                        redirects: [
                                          (redir.Redir
                                            op: <Redir_Less '<'>
                                            fd: 16777215
                                            arg_word: {($ VSub_DollarName '$list')}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                              )
                            }
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(wget)} {(-c)} {($ VSub_DollarName '$url') (/List)} 
                          {($ VSub_DollarName '$files')}
                        )
                        (C {(true)})
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.FuncDef
      name: hdemu_root_changes
      body: 
        (command.BraceGroup
          children: [
            (C {($ VSub_DollarName '$RELEASEDIR') (/usr/bin/installboot)} {(-d)} 
              {($ VSub_DollarName '$TMPDISK3')} {($ VSub_DollarName '$RELEASEDIR') (/usr/mdec/bootblock)} {(boot/boot)}
            )
            (command.Pipeline
              children: [
                (C {(echo)} 
                  {
                    (SQ <'bootcd=2\n'> <'disable=inet\n'> <'bios_wini=yes\n'> <'bios_remap_first=1\n'> 
                      <'ramimagedev=c0d7p0s0\n'> <'bootbig(1, Regular MINIX 3) { image=/boot/image_big; boot }\n'> 
                      <'main() { trap 10000 boot ; menu; }\n'> <save>
                    )
                  }
                )
                (C {($ VSub_DollarName '$RELEASEDIR') (/usr/bin/edparams)} 
                  {($ VSub_DollarName '$TMPDISK3')}
                )
              ]
              negated: F
            )
            (command.SimpleCommand
              words: [
                {(echo)}
                {(SQ <'root=/dev/c0d7p0s0\n'> <'usr=/dev/c0d7p0s2\n'> <'usr_roflag="-r"'>)}
              ]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$RELEASEDIR') (/etc/fstab)}
                )
              ]
            )
          ]
        )
    )
    (command.FuncDef
      name: usb_root_changes
      body: 
        (command.BraceGroup
          children: [
            (C {($ VSub_DollarName '$RELEASEDIR') (/usr/bin/installboot)} {(-d)} 
              {($ VSub_DollarName '$TMPDISK3')} {($ VSub_DollarName '$RELEASEDIR') (/usr/mdec/bootblock)} {(boot/boot)}
            )
            (command.Pipeline
              children: [
                (C {(echo)} 
                  {(SQ <'bios_wini=yes\n'> <'bios_remap_first=1\n'> <'rootdev=c0d7p0s0\n'> <save>)}
                )
                (C {($ VSub_DollarName '$RELEASEDIR') (/usr/bin/edparams)} 
                  {($ VSub_DollarName '$TMPDISK3')}
                )
              ]
              negated: F
            )
            (command.SimpleCommand
              words: [{(echo)} {(SQ <'root=/dev/c0d7p0s0\n'> <'usr=/dev/c0d7p0s2\n'>)}]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$RELEASEDIR') (/etc/fstab)}
                )
              ]
            )
          ]
        )
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:RELEASEDIR) op:Equal rhs:{(/usr/r)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:RELEASEPACKAGE)
          op: Equal
          rhs: {(${ VSub_Name RELEASEDIR) (/usr/install/packages)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:RELEASEPACKAGESOURCES)
          op: Equal
          rhs: {(${ VSub_Name RELEASEDIR) (/usr/install/package-sources)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:IMAGE) op:Equal rhs:{(../boot/boot)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ROOTIMAGE) op:Equal rhs:{(rootimage)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CDFILES)
          op: Equal
          rhs: {(/usr/tmp/cdreleasefiles)}
        )
      ]
    )
    (command.SimpleCommand
      words: [{(sh)} {(tell_config)} {(OS_RELEASE)} {(.)} {(OS_VERSION)}]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {(/tmp/rel.) ($ VSub_Dollar '$$')}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:version_pretty)
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (command.SimpleCommand
                        words: [{(sed)} {(SQ <'s/["      ]//g;/^$/d'>)}]
                        redirects: [
                          (redir.Redir
                            op: <Redir_Less '<'>
                            fd: 16777215
                            arg_word: {(/tmp/rel.) ($ VSub_Dollar '$$')}
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
              )
            }
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:version)
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (command.SimpleCommand
                            words: [{(sed)} {(SQ <'s/["      ]//g;/^$/d'>)}]
                            redirects: [
                              (redir.Redir
                                op: <Redir_Less '<'>
                                fd: 16777215
                                arg_word: {(/tmp/rel.) ($ VSub_Dollar '$$')}
                              )
                            ]
                          )
                          (C {(tr)} {(.)} {(_)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
              )
            }
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:IMG_BASE)
          op: Equal
          rhs: {(minix) (${ VSub_Name version) (_ide)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:BS) op:Equal rhs:{(4096)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:HDEMU) op:Equal rhs:{(0)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:COPY) op:Equal rhs:{(0)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:SVNREV) op:Equal rhs:{(DQ )})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:REVTAG) op:Equal rhs:{(DQ )})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:PACKAGES) op:Equal rhs:{(1)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:FILENAMEOUT) op:Equal rhs:{(DQ )})]
    )
    (command.WhileUntil
      keyword: <KW_While while>
      cond: [(C {(getopts)} {(DQ ('s:pchu?r:f:'))} {(c)})]
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ VSub_DollarName '$c'))}
              arms: [
                (case_arm
                  pat_list: [{(word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}]
                  action: [
                    (command.SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ('Usage: ') ($ VSub_Number '$0') 
                            (' [-p] [-c] [-h] [-r <tag>] [-u] [-f <filename>] [-s <username>]')
                          )
                        }
                      ]
                      redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(1)}
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(h)}]
                  action: [
                    (C {(echo)} {(DQ (' * Making HD image'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:IMG_BASE)
                          op: Equal
                          rhs: {(minix) (${ VSub_Name version) (_bios)}
                        )
                      ]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:HDEMU) op:Equal rhs:{(1)})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(c)}]
                  action: [
                    (C {(echo)} {(DQ (' * Copying, not SVN'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:COPY) op:Equal rhs:{(1)})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(p)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:PACKAGES) op:Equal rhs:{(0)})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(r)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:SVNREV)
                          op: Equal
                          rhs: {(-r) ($ VSub_DollarName '$OPTARG')}
                        )
                      ]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(u)}]
                  action: [
                    (C {(echo)} {(DQ (' * Making live USB-stick image'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:IMG_BASE)
                          op: Equal
                          rhs: {(minix) (${ VSub_Name version) (_usb)}
                        )
                      ]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:HDEMU) op:Equal rhs:{(1)})]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:USB) op:Equal rhs:{(1)})]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(f)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:FILENAMEOUT)
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$OPTARG'))}
                        )
                      ]
                    )
                  ]
                )
                (case_arm
                  pat_list: [{(s)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:USERNAME)
                          op: Equal
                          rhs: {(DQ ('--username=') ($ VSub_DollarName '$OPTARG'))}
                        )
                      ]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_DollarName '$USRMB'))} {(Lit_Other ']')})
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(lhs_expr.LhsName name:USRMB) op:Equal rhs:{(600)})]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {($ VSub_DollarName '$PACKAGES')} {(-ne)} {(0)} {(Lit_Other ']')})
          ]
          action: [
            (command.AndOr
              ops: [Op_DPipe]
              children: [(C {(mkdir)} {(-p)} {($ VSub_DollarName '$PACKAGEDIR')}) (C {(true)})]
            )
            (command.AndOr
              ops: [Op_DPipe]
              children: [(C {(mkdir)} {(-p)} {($ VSub_DollarName '$PACKAGESOURCEDIR')}) (C {(true)})]
            )
            (C {(rm)} {(-f)} {($ VSub_DollarName '$PACKAGEDIR') (/List)})
            (C {(retrieve)} {($ VSub_DollarName '$PACKAGEDIR')} {($ VSub_DollarName '$PACKAGELIST')} 
              {(packages/) 
                (word_part.CommandSubPart
                  command_list: (command.CommandList children:[(C {(uname)} {(-p)})])
                  left_token: <Left_Backtick '`'>
                ) (/) 
                (word_part.CommandSubPart
                  command_list: (command.CommandList children:[(C {(uname)} {(-r)})])
                  left_token: <Left_Backtick '`'>
                ) (.) 
                (word_part.CommandSubPart
                  command_list: (command.CommandList children:[(C {(uname)} {(-v)})])
                  left_token: <Left_Backtick '`'>
                )
              }
            )
            (C {(retrieve)} {($ VSub_DollarName '$PACKAGESOURCEDIR')} 
              {($ VSub_DollarName '$PACKAGESOURCELIST')} {(software)}
            )
          ]
        )
      ]
    )
    (C {(echo)} {($ VSub_DollarName '$USRMB')} {(MB)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USRKB)
          op: Equal
          rhs: 
            {
              (word_part.ArithSubPart
                anode: 
                  (arith_expr.ArithBinary
                    op_id: Arith_Star
                    left: (arith_expr.ArithWord w:{($ VSub_DollarName '$USRMB')})
                    right: (arith_expr.ArithWord w:{(Lit_Digits 1024)})
                  )
              )
            }
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USRBLOCKS)
          op: Equal
          rhs: 
            {
              (word_part.ArithSubPart
                anode: 
                  (arith_expr.ArithBinary
                    op_id: Arith_Slash
                    left: 
                      (arith_expr.ArithBinary
                        op_id: Arith_Star
                        left: 
                          (arith_expr.ArithBinary
                            op_id: Arith_Star
                            left: (arith_expr.ArithWord w:{($ VSub_DollarName '$USRMB')})
                            right: (arith_expr.ArithWord w:{(Lit_Digits 1024)})
                          )
                        right: (arith_expr.ArithWord w:{(Lit_Digits 1024)})
                      )
                    right: (arith_expr.ArithWord w:{($ VSub_DollarName '$BS')})
                  )
              )
            }
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USRSECTS)
          op: Equal
          rhs: 
            {
              (word_part.ArithSubPart
                anode: 
                  (arith_expr.ArithBinary
                    op_id: Arith_Star
                    left: 
                      (arith_expr.ArithBinary
                        op_id: Arith_Star
                        left: (arith_expr.ArithWord w:{($ VSub_DollarName '$USRMB')})
                        right: (arith_expr.ArithWord w:{(Lit_Digits 1024)})
                      )
                    right: (arith_expr.ArithWord w:{(Lit_Digits 2)})
                  )
              )
            }
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ROOTKB) op:Equal rhs:{(8192)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ROOTSECTS)
          op: Equal
          rhs: 
            {
              (word_part.ArithSubPart
                anode: 
                  (arith_expr.ArithBinary
                    op_id: Arith_Star
                    left: (arith_expr.ArithWord w:{($ VSub_DollarName '$ROOTKB')})
                    right: (arith_expr.ArithWord w:{(Lit_Digits 2)})
                  )
              )
            }
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ROOTBLOCKS)
          op: Equal
          rhs: 
            {
              (word_part.ArithSubPart
                anode: 
                  (arith_expr.ArithBinary
                    op_id: Arith_Slash
                    left: 
                      (arith_expr.ArithBinary
                        op_id: Arith_Star
                        left: (arith_expr.ArithWord w:{($ VSub_DollarName '$ROOTKB')})
                        right: (arith_expr.ArithWord w:{(Lit_Digits 1024)})
                      )
                    right: (arith_expr.ArithWord w:{($ VSub_DollarName '$BS')})
                  )
              )
            }
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$COPY'))} {(-ne)} {(1)} {(Lit_Other ']')})
          ]
          action: [(C {(echo)} {(DQ ('Note: this script wants to do svn operations.'))})]
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:TMPDISK1) op:Equal rhs:{(/dev/ram0)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:TMPDISK2) op:Equal rhs:{(/dev/ram1)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:TMPDISK3) op:Equal rhs:{(/dev/ram2)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-b)} {($ VSub_DollarName '$TMPDISK1')} {(-o)} 
              {(KW_Bang '!')} {(-b)} {($ VSub_DollarName '$TMPDISK2')} {(-o)} {(KW_Bang '!')} {($ VSub_DollarName '$TMPDISK3')} 
              {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ($ VSub_DollarName '$TMPDISK1') (', ') ($ VSub_DollarName '$TMPDISK2') (' or ') 
                  ($ VSub_DollarName '$TMPDISK3') (' is not a block device..')
                )
              }
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [(C {(umount)} {($ VSub_DollarName '$TMPDISK1')}) (C {(true)})]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [(C {(umount)} {($ VSub_DollarName '$TMPDISK2')}) (C {(true)})]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [(C {(umount)} {($ VSub_DollarName '$TMPDISK3')}) (C {(true)})]
    )
    (C {(ramdisk)} {($ VSub_DollarName '$USRKB')} {($ VSub_DollarName '$TMPDISK1')})
    (C {(ramdisk)} {($ VSub_DollarName '$TMPKB')} {($ VSub_DollarName '$TMPDISK2')})
    (C {(ramdisk)} {($ VSub_DollarName '$ROOTKB')} {($ VSub_DollarName '$TMPDISK3')})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {($ VSub_DollarName '$TMPDISK1')} {(Lit_Other '=')} 
              {($ VSub_DollarName '$TMPDISK2')} {(-o)} {($ VSub_DollarName '$TMPDISK1')} {(Lit_Other '=')} {($ VSub_DollarName '$TMPDISK3')} {(-o)} 
              {($ VSub_DollarName '$TMPDISK2')} {(Lit_Other '=')} {($ VSub_DollarName '$TMPDISK3')} {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Temporary devices can't be equal."))})
            (command.ControlFlow token:<ControlFlow_Exit exit>)
          ]
        )
      ]
    )
    (C {(echo)} {(DQ (' * Cleanup old files'))})
    (C {(rm)} {(-rf)} {($ VSub_DollarName '$RELEASEDIR')} {($ VSub_DollarName '$IMG')} 
      {($ VSub_DollarName '$ROOTIMAGE')} {($ VSub_DollarName '$CDFILES')} {(image) (Lit_Other '*')}
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkdir)} {(-p)} {($ VSub_DollarName '$CDFILES')})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEDIR')})
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkfs)} {(-i)} {(2000)} {(-B)} {($ VSub_DollarName '$BS')} {(-b)} 
          {($ VSub_DollarName '$ROOTBLOCKS')} {($ VSub_DollarName '$TMPDISK3')}
        )
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkfs)} {(-B)} {(1024)} {(-b)} {($ VSub_DollarName '$TMPKB')} {($ VSub_DollarName '$TMPDISK2')})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(echo)} 
      {
        (DQ (' * mounting ') ($ VSub_DollarName '$TMPDISK3') (' as ') ($ VSub_DollarName '$RELEASEDIR'))
      }
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mount)} {($ VSub_DollarName '$TMPDISK3')} {($ VSub_DollarName '$RELEASEDIR')})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(mkdir)} {(-m)} {(755)} {($ VSub_DollarName '$RELEASEDIR') (/usr)})
    (C {(mkdir)} {(-m)} {(1777)} {($ VSub_DollarName '$RELEASEDIR') (/tmp)})
    (C {(mount)} {($ VSub_DollarName '$TMPDISK2')} {($ VSub_DollarName '$RELEASEDIR') (/tmp)})
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mkfs)} {(-B)} {($ VSub_DollarName '$BS')} {(-i)} {(30000)} {(-b)} 
          {($ VSub_DollarName '$USRBLOCKS')} {($ VSub_DollarName '$TMPDISK1')}
        )
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(echo)} 
      {
        (DQ (' * Mounting ') ($ VSub_DollarName '$TMPDISK1') (' as ') ($ VSub_DollarName '$RELEASEDIR') 
          (/usr)
        )
      }
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(mount)} {($ VSub_DollarName '$TMPDISK1')} {($ VSub_DollarName '$RELEASEDIR') (/usr)})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEDIR') (/tmp)})
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEDIR') (/usr/tmp)})
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEDIR') (/) ($ VSub_DollarName '$XBIN')})
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEDIR') (/usr/bin)})
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEDIR') (/bin)})
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEPACKAGE')})
    (C {(mkdir)} {(-p)} {($ VSub_DollarName '$RELEASEPACKAGESOURCES')})
    (C {(echo)} {(DQ (' * Transfering bootstrap dirs to ') ($ VSub_DollarName '$RELEASEDIR'))})
    (C {(cp)} {(-p)} {(/bin/) (Lit_Other '*')} {(/usr/bin/) (Lit_Other '*')} 
      {($ VSub_DollarName '$RELEASEDIR') (/) ($ VSub_DollarName '$XBIN')}
    )
    (C {(cp)} {(-rp)} {(/usr/lib)} {($ VSub_DollarName '$RELEASEDIR') (/usr)})
    (C {(cp)} {(-rp)} {(/bin/bigsh)} {(/bin/sh)} {(/bin/echo)} {($ VSub_DollarName '$RELEASEDIR') (/bin)})
    (C {(cp)} {(-rp)} {(/usr/bin/make)} {(/usr/bin/install)} {(/usr/bin/yacc)} {(/usr/bin/flex)} 
      {($ VSub_DollarName '$RELEASEDIR') (/usr/bin)}
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(-d)} {($ VSub_DollarName '$PACKAGEDIR')} {(-a)} {(-d)} 
              {($ VSub_DollarName '$PACKAGESOURCEDIR')} {(-a)} {(-f)} {($ VSub_DollarName '$PACKAGELIST')} {(-a)} {(-f)} {($ VSub_DollarName '$PACKAGESOURCELIST')} 
              {(-a)} {($ VSub_DollarName '$PACKAGES')} {(-ne)} {(0)} {(Lit_Other ']')}
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ (' * Transfering ') ($ VSub_DollarName '$PACKAGEDIR') (' to ') 
                  ($ VSub_DollarName '$RELEASEPACKAGE')
                )
              }
            )
            (command.SimpleCommand
              words: [{(Lit_Other ':')}]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$RELEASEPACKAGE') (/List)}
                )
              ]
            )
            (command.ForEach
              iter_name: p
              iter_words: [
                {
                  (word_part.CommandSubPart
                    command_list: 
                      (command.CommandList
                        children: [(C {(cat)} {($ VSub_DollarName '$PACKAGELIST')})]
                      )
                    left_token: <Left_Backtick '`'>
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(-f)} 
                              {($ VSub_DollarName '$PACKAGEDIR') (/) ($ VSub_DollarName '$p') 
                                (.tar.bz2)
                              } {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(cp)} 
                              {($ VSub_DollarName '$PACKAGEDIR') (/) ($ VSub_DollarName '$p') 
                                (.tar.bz2)
                              } {($ VSub_DollarName '$RELEASEPACKAGE') (/)}
                            )
                            (command.AndOr
                              ops: [Op_DPipe]
                              children: [
                                (command.SimpleCommand
                                  words: [
                                    {(grep)}
                                    {(DQ ('^') ($ VSub_DollarName '$p') ('|'))}
                                    {($ VSub_DollarName '$PACKAGEDIR') (/List)}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: <Redir_DGreat '>>'>
                                      fd: 16777215
                                      arg_word: {($ VSub_DollarName '$RELEASEPACKAGE') (/List)}
                                    )
                                  ]
                                )
                                (C {(echo)} {(DQ ($ VSub_DollarName '$p') (' not found in List'))})
                              ]
                            )
                          ]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ ("Can't copy ") ($ VSub_DollarName '$PACKAGEDIR') (/) 
                              ($ VSub_DollarName '$p') ('.tar.bz2. Missing.')
                            )
                          }
                        )
                      ]
                    )
                  ]
                )
            )
            (C {(echo)} 
              {
                (DQ (' * Transfering ') ($ VSub_DollarName '$PACKAGESOURCEDIR') (' to ') 
                  ($ VSub_DollarName '$RELEASEPACKAGESOURCES')
                )
              }
            )
            (command.ForEach
              iter_name: p
              iter_words: [
                {
                  (word_part.CommandSubPart
                    command_list: 
                      (command.CommandList
                        children: [(C {(cat)} {($ VSub_DollarName '$PACKAGESOURCELIST')})]
                      )
                    left_token: <Left_Backtick '`'>
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Lit_Other '[')} {(-f)} 
                              {($ VSub_DollarName '$PACKAGESOURCEDIR') (/) ($ VSub_DollarName '$p') 
                                (.tar.bz2)
                              } {(Lit_Other ']')}
                            )
                          ]
                          action: [
                            (C {(cp)} 
                              {($ VSub_DollarName '$PACKAGESOURCEDIR') (/) ($ VSub_DollarName '$p') 
                                (.tar.bz2)
                              } {($ VSub_DollarName '$RELEASEPACKAGESOURCES') (/)}
                            )
                          ]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ ("Can't copy ") ($ VSub_DollarName '$PACKAGESOURCEDIR') (/) 
                              ($ VSub_DollarName '$p') ('.tar.bz2. Missing.')
                            )
                          }
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
      ]
    )
    (C {(chown)} {(-R)} {(bin)} {($ VSub_DollarName '$RELEASEDIR') (/usr/lib)})
    (C {(chmod)} {(-R)} {(u) (Lit_Other '+') (w)} {($ VSub_DollarName '$RELEASEDIR') (/usr/lib)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$COPY'))} {(-ne)} {(1)} {(Lit_Other ']')})
          ]
          action: [
            (C {(echo)} {(DQ (' * Doing new svn export'))})
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:TOOLSREPO)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(svn)} {(info)})
                                    (C {(grep)} {(SQ <'^URL: '>)})
                                    (C {(awk)} {(SQ <'{ print $2 }'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_Backtick '`'>
                        )
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:REPO)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {($ VSub_DollarName '$TOOLSREPO')})
                                    (C {(sed)} {(SQ <'s/.tools$//'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_Backtick '`'>
                        )
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:BRANCHNAME)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {($ VSub_DollarName '$REPO')})
                                    (C {(awk)} {(-F/)} {(SQ <'{ print $NF }'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_Backtick '`'>
                        )
                      )
                    }
                )
              ]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:REVISION)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (word_part.CommandSubPart
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(svn)} {(info)} {($ VSub_DollarName '$USERNAME')} 
                                      {($ VSub_DollarName '$SVNREV')} {($ VSub_DollarName '$REPO')}
                                    )
                                    (C {(grep)} {(SQ <'^Revision: '>)})
                                    (C {(awk)} {(SQ <'{ print $2 }'>)})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                          left_token: <Left_Backtick '`'>
                        )
                      )
                    }
                )
              ]
            )
            (C {(echo)} 
              {
                (DQ ('Doing export of revision ') ($ VSub_DollarName '$REVISION') (' from ') 
                  ($ VSub_DollarName '$REPO') (.)
                )
              }
            )
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(cd)} {($ VSub_DollarName '$RELEASEDIR') (/usr)})
                        (C {(svn)} {(-q)} {($ VSub_DollarName '$USERNAME')} {(export)} 
                          {(-r) ($ VSub_DollarName '$REVISION')} {($ VSub_DollarName '$REPO')} {($ VSub_DollarName '$SRC')}
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (C {(Lit_Other '[')} {($ VSub_DollarName '$BRANCHNAME')} {(Lit_Other '=')} {(src)} 
                      {(Lit_Other ']')}
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:REVTAG)
                          op: Equal
                          rhs: {(r) ($ VSub_DollarName '$REVISION')}
                        )
                      ]
                    )
                  ]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:REVTAG)
                      op: Equal
                      rhs: 
                        {(branch-) ($ VSub_DollarName '$BRANCHNAME') (-r) 
                          ($ VSub_DollarName '$REVISION')
                        }
                    )
                  ]
                )
              ]
            )
            (command.SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('\n') ('\n') ('/* Added by release script  */\n') ('#ifndef _SVN_REVISION\n') 
                    ('#define _SVN_REVISION ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_DollarName '$REVTAG') 
                    (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('#endif')
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$RELEASEDIR') (/usr/src/include/minix/sys_config.h)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USB'))} {(-ne)} {(0)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:IMG)
                          op: Equal
                          rhs: {(${ VSub_Name IMG_BASE) (_) (${ VSub_Name REVTAG) (.img)}
                        )
                      ]
                    )
                  ]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:IMG)
                      op: Equal
                      rhs: {(${ VSub_Name IMG_BASE) (_) (${ VSub_Name REVTAG) (.iso)}
                    )
                  ]
                )
              ]
            )
          ]
        )
      ]
      else_action: [
        (command.Subshell
          command_list: 
            (command.CommandList
              children: [
                (command.AndOr
                  ops: [Op_DAmp Op_DAmp]
                  children: [(C {(cd)} {(..)}) (C {(make)} {(depend)}) (C {(make)} {(clean)})]
                )
              ]
            )
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:srcdir)
              op: Equal
              rhs: {(/usr/) ($ VSub_DollarName '$SRC')}
            )
          ]
        )
        (command.Pipeline
          children: [
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(cd)} {($ VSub_DollarName '$srcdir')})
                        (C {(tar)} {(cf)} {(-)} {(.)})
                      ]
                    )
                  ]
                )
            )
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Op_DAmp Op_DAmp Op_DAmp]
                      children: [
                        (C {(cd)} {($ VSub_DollarName '$RELEASEDIR') (/usr)})
                        (C {(mkdir)} {($ VSub_DollarName '$SRC')})
                        (C {(cd)} {($ VSub_DollarName '$SRC')})
                        (C {(tar)} {(xf)} {(-)})
                      ]
                    )
                  ]
                )
            )
          ]
          negated: F
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(lhs_expr.LhsName name:REVTAG) op:Equal rhs:{(copy)})]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(lhs_expr.LhsName name:REVISION) op:Equal rhs:{(unknown)})]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:IMG)
              op: Equal
              rhs: {(${ VSub_Name IMG_BASE) (_copy.iso)}
            )
          ]
        )
      ]
    )
    (C {(echo)} {(DQ (' * Fixups for owners and modes of dirs and files'))})
    (C {(chown)} {(-R)} {(bin)} {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC')})
    (C {(chmod)} {(-R)} {(u) (Lit_Other '+') (w)} 
      {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC')}
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC')} {(-type)} 
          {(d)}
        )
        (C {(xargs)} {(chmod)} {(755)})
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC')} {(-type)} 
          {(f)}
        )
        (C {(xargs)} {(chmod)} {(644)})
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC')} {(-name)} 
          {(configure)}
        )
        (C {(xargs)} {(chmod)} {(755)})
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC') (/commands)} 
          {(-name)} {(build)}
        )
        (C {(xargs)} {(chmod)} {(755)})
      ]
      negated: F
    )
    (C {(rm)} {(-rf)} {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC') (/doc/bugs)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USB'))} {(-eq)} {(0)} {(Lit_Other ']')})
          ]
          action: [
            (command.SimpleCommand
              words: [{(date)}]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$RELEASEDIR') (/CD)}
                )
              ]
            )
          ]
        )
      ]
    )
    (C {(echo)} {(DQ (' * Chroot build'))})
    (C {(cp)} {(chrootmake.sh)} 
      {($ VSub_DollarName '$RELEASEDIR') (/usr/) ($ VSub_DollarName '$SRC') (/tools/chrootmake.sh)}
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(chroot)} {($ VSub_DollarName '$RELEASEDIR')} 
          {
            (DQ ('PATH=/') ($ VSub_DollarName '$XBIN') (' sh -x /usr/') ($ VSub_DollarName '$SRC') 
              (/tools/chrootmake.sh)
            )
          }
        )
        (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
      ]
    )
    (C {(cp)} {($ VSub_DollarName '$RELEASEDIR') (/boot/image_big)} {(image)})
    (C {(echo)} {(DQ (' * Chroot build done'))})
    (C {(echo)} {(DQ (' * Removing bootstrap files'))})
    (C {(rm)} {(-rf)} {($ VSub_DollarName '$RELEASEDIR') (/) ($ VSub_DollarName '$XBIN')})
    (C {(chown)} {(-R)} {(bin)} {($ VSub_DollarName '$RELEASEDIR') (/usr/src) (Lit_Other '*')})
    (C {(cp)} {(issue.install)} {($ VSub_DollarName '$RELEASEDIR') (/etc/issue)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USB'))} {(-ne)} {(0)} {(Lit_Other ']')})
          ]
          action: [(C {(usb_root_changes)})]
        )
        (if_arm
          cond: [
            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$HDEMU'))} {(-ne)} {(0)} {(Lit_Other ']')})
          ]
          action: [(C {(hdemu_root_changes)})]
        )
      ]
    )
    (command.SimpleCommand
      words: [
        {(echo)}
        {($ VSub_DollarName '$version_pretty') (Lit_Comma ',')}
        {(SVN)}
        {(revision)}
        {($ VSub_DollarName '$REVISION') (Lit_Comma ',')}
        {(generated)}
        {
          (word_part.CommandSubPart
            command_list: (command.CommandList children:[(C {(date)})])
            left_token: <Left_Backtick '`'>
          )
        }
      ]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_DollarName '$RELEASEDIR') (/etc/version)}
        )
      ]
    )
    (C {(echo)} {(DQ (' * Counting files'))})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:extrakb)
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {(du)} {(-s)} {($ VSub_DollarName '$RELEASEDIR') (/usr/install)})
                          (C {(awk)} {(SQ <'{ print $1 }'>)})
                        ]
                        negated: F
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
              )
            }
        )
      ]
    )
    (command.SimpleCommand
      words: [
        {(expr)}
        {
          (word_part.CommandSubPart
            command_list: 
              (command.CommandList
                children: [
                  (command.Pipeline
                    children: [
                      (C {(df)} {($ VSub_DollarName '$TMPDISK1')})
                      (C {(tail)} {(-1)})
                      (C {(awk)} {(SQ <'{ print $4 }'>)})
                    ]
                    negated: F
                  )
                ]
              )
            left_token: <Left_Backtick '`'>
          )
        }
        {(-)}
        {($ VSub_DollarName '$extrakb')}
      ]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_DollarName '$RELEASEDIR') (/.usrkb)}
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ VSub_DollarName '$RELEASEDIR') (/usr)})
        (C {(fgrep)} {(-v)} {(/install/)})
        (command.SimpleCommand
          words: [{(wc)} {(-l)}]
          redirects: [
            (redir.Redir
              op: <Redir_Great '>'>
              fd: 16777215
              arg_word: {($ VSub_DollarName '$RELEASEDIR') (/.usrfiles)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ VSub_DollarName '$RELEASEDIR')} {(-xdev)})
        (command.SimpleCommand
          words: [{(wc)} {(-l)}]
          redirects: [
            (redir.Redir
              op: <Redir_Great '>'>
              fd: 16777215
              arg_word: {($ VSub_DollarName '$RELEASEDIR') (/.rootfiles)}
            )
          ]
        )
      ]
      negated: F
    )
    (C {(echo)} {(DQ (' * Zeroing remainder of temporary areas'))})
    (C {(df)} {($ VSub_DollarName '$TMPDISK1')})
    (C {(df)} {($ VSub_DollarName '$TMPDISK3')})
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (command.SimpleCommand
          words: [{(cp)} {(/dev/zero)} {($ VSub_DollarName '$RELEASEDIR') (/usr/.x)}]
          redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
        )
        (C {(true)})
      ]
    )
    (C {(rm)} {($ VSub_DollarName '$RELEASEDIR') (/usr/.x)})
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (command.SimpleCommand
          words: [{(cp)} {(/dev/zero)} {($ VSub_DollarName '$RELEASEDIR') (/.x)}]
          redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
        )
        (C {(true)})
      ]
    )
    (C {(rm)} {($ VSub_DollarName '$RELEASEDIR') (/.x)})
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(umount)} {($ VSub_DollarName '$TMPDISK1')})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(umount)} {($ VSub_DollarName '$TMPDISK2')})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(umount)} {($ VSub_DollarName '$TMPDISK3')})
        (command.ControlFlow token:<ControlFlow_Exit exit>)
      ]
    )
    (C {(edparams)} {($ VSub_DollarName '$TMPDISK3')} 
      {
        (SQ <'unset bootopts;\n'> <'unset servers;\n'> <'unset rootdev;\n'> <'unset leader;\n'> 
          <'unset image;\n'> <'disable=inet;\n'> <'bootcd=1;\n'> <'cdproberoot=1;\n'> <'ata_id_timeout=2;\n'> 
          <'bootbig(1, Regular MINIX 3) { unset image; boot }\n'> 
          <
'leader() { echo \\n--- Welcome to MINIX 3. This is the boot monitor. ---\\n\\nChoose an option from the menu or press ESC if you need to do anything special.\\nOtherwise I will boot with my defaults in 10 seconds.\\n\\n }; main(){trap 10000 boot; menu; };\n'
          > <save>
        )
      }
    )
    (command.Subshell
      command_list: 
        (command.CommandList
          children: [(command.AndOr ops:[Op_DAmp] children:[(C {(cd)} {(../boot)}) (C {(make)})])]
        )
    )
    (C {(dd)} {(Lit_VarLike 'if=') ($ VSub_DollarName '$TMPDISK3')} 
      {(Lit_VarLike 'of=') ($ VSub_DollarName '$ROOTIMAGE')} {(Lit_VarLike 'bs=') ($ VSub_DollarName '$BS')} 
      {(Lit_VarLike 'count=') ($ VSub_DollarName '$ROOTBLOCKS')}
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [
        (C {(cp)} {(release/cd/) (Lit_Other '*')} {($ VSub_DollarName '$CDFILES')})
        (C {(true)})
      ]
    )
    (command.SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('This is Minix version ') ($ VSub_DollarName '$version_pretty') (' prepared ') 
            (word_part.CommandSubPart
              command_list: (command.CommandList children:[(C {(date)})])
              left_token: <Left_Backtick '`'>
            ) (.)
          )
        }
      ]
      redirects: [
        (redir.Redir
          op: <Redir_Great '>'>
          fd: 16777215
          arg_word: {($ VSub_DollarName '$CDFILES') (/VERSION.TXT)}
        )
      ]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:boottype) op:Equal rhs:{(-n)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:bootimage)
          op: Equal
          rhs: {($ VSub_DollarName '$IMAGE')}
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$HDEMU'))} {(-ne)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(make_hdimage)})
            (command.Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(lhs_expr.LhsName name:boottype) op:Equal rhs:{(SQ <-h>)})]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(lhs_expr.LhsName name:bootimage) op:Equal rhs:{(hdimage)})]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USB'))} {(-ne)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(mv)} {($ VSub_DollarName '$bootimage')} {($ VSub_DollarName '$IMG')})]
        )
      ]
      else_action: [
        (command.AndOr
          ops: [Op_DPipe]
          children: [
            (C {(writeisofs)} {(-s0x1000)} {(-l)} {(MINIX)} {(-b)} {($ VSub_DollarName '$bootimage')} 
              {($ VSub_DollarName '$boottype')} {($ VSub_DollarName '$CDFILES')} {($ VSub_DollarName '$IMG')}
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$HDEMU'))} {(-eq)} {(0)} {(Lit_Other ']')})
              ]
              action: [
                (C {(echo)} {(DQ ('Appending Minix root and usr filesystem'))})
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:isobytes)
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(stat)} {(-size)} {($ VSub_DollarName '$IMG')})]
                              )
                            left_token: <Left_Backtick '`'>
                          )
                        }
                    )
                  ]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:isosects)
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [(C {(expr)} {($ VSub_DollarName '$isobytes')} {(/)} {(512)})]
                              )
                            left_token: <Left_Backtick '`'>
                          )
                        }
                    )
                  ]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:isopad)
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(expr)} {($ VSub_DollarName '$secs')} {(-)} {(SQ <'('>)} 
                                    {($ VSub_DollarName '$isosects')} {(Lit_Other '%')} {($ VSub_DollarName '$secs')} {(SQ <')'>)}
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                          )
                        }
                    )
                  ]
                )
                (command.SimpleCommand
                  words: [
                    {(dd)}
                    {(Lit_VarLike 'if=') (/dev/zero)}
                    {(Lit_VarLike 'count=') ($ VSub_DollarName '$isopad')}
                  ]
                  redirects: [
                    (redir.Redir
                      op: <Redir_DGreat '>>'>
                      fd: 16777215
                      arg_word: {($ VSub_DollarName '$IMG')}
                    )
                  ]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:isosects)
                      op: Equal
                      rhs: 
                        {
                          (word_part.CommandSubPart
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(expr)} {($ VSub_DollarName '$isosects')} {(Lit_Other '+')} 
                                    {($ VSub_DollarName '$isopad')}
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                          )
                        }
                    )
                  ]
                )
                (command.Subshell
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (C {(cat)} {($ VSub_DollarName '$IMG')} {($ VSub_DollarName '$ROOTIMAGE')})
                          terminator: <Op_Semi ';'>
                        )
                        (C {(dd)} {(Lit_VarLike 'if=') ($ VSub_DollarName '$TMPDISK1')} 
                          {(Lit_VarLike 'bs=') ($ VSub_DollarName '$BS')} {(Lit_VarLike 'count=') ($ VSub_DollarName '$USRBLOCKS')}
                        )
                      ]
                    )
                  redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(m)})]
                )
                (C {(mv)} {(m)} {($ VSub_DollarName '$IMG')})
                (C {(installboot)} {(-m)} {($ VSub_DollarName '$IMG')} {(/usr/mdec/masterboot)})
                (C {(partition)} {(-m)} {($ VSub_DollarName '$IMG')} {(0)} 
                  {(81) (Lit_Other ':') ($ VSub_DollarName '$isosects')} {(81) (Lit_Other ':') ($ VSub_DollarName '$ROOTSECTS')} 
                  {(81) (Lit_Other ':') ($ VSub_DollarName '$USRSECTS')}
                )
              ]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$FILENAMEOUT'))} {(Lit_Other ']')})]
          action: [
            (command.SimpleCommand
              words: [{(echo)} {(DQ ($ VSub_DollarName '$IMG'))}]
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$FILENAMEOUT')}
                )
              ]
            )
          ]
        )
      ]
    )
  ]
)