(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LeftVar name:SAVEPATH) rhs:{(DQ ($ VSub_Name "$PATH"))} spids:[66])]
      spids: [66]
    )
    (AndOr children:[(C {(source)} {(sources/include.sh)})(C {(exit)} {(1)})] op_id:Op_DPipe)
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:STAGE_DIR)
          rhs: {(DQ (${ VSub_Name HOSTTOOLS))}
          spids: [82]
        )
      ]
      spids: [82]
    )
    (C {(blank_tempdir)} {(DQ ($ VSub_Name "$WORK"))})
    (AndOr
      children: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$STAGE_DIR"))}) (C {(dienow)})]
      op_id: Op_DPipe
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:PATH)
          rhs: 
            {
              (DQ (CommandSubPart command_list:(C {(hosttools_path)}) spids:[181183]) (":") 
                ($ VSub_Name "$PATH")
              )
            }
          spids: [179]
        )
      ]
      spids: [179]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$BUILD_STATIC"))} {(KW_Bang "!") (Lit_Other "=")} 
              {(none)} {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (C {($ VSub_Name "$CC")} {(DQ ($ VSub_Name "$SOURCES") (/root-filesystem/src/hello.c))} 
                  {(--static)} {(-o)} {(/dev/null)}
                )
                (If
                  arms: [
                    (if_arm
                      cond: (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(-ne)} {(0)} {(Lit_Other "]")})
                      action: 
                        (CommandList
                          children: [
                            (SimpleCommand
                              words: [
                                {(echo)}
                                {(DQ ("Your host toolchain does not support static linking."))}
                              ]
                              redirects: [
                                (Redirect
                                  op_id: Redir_GreatAnd
                                  arg_word: {(2)}
                                  fd: -1
                                  spids: [248]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [
                                {(echo)}
                                {(DQ ("Either install support, or export BUILD_STATIC=none"))}
                              ]
                              redirects: [
                                (Redirect
                                  op_id: Redir_GreatAnd
                                  arg_word: {(2)}
                                  fd: -1
                                  spids: [258]
                                )
                              ]
                            )
                            (C {(dienow)})
                          ]
                        )
                      spids: [-1 239]
                    )
                  ]
                  spids: [-1 266]
                )
              ]
            )
          spids: [-1 208]
        )
      ]
      spids: [-1 268]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {(DQ ($ VSub_Name "$STAGE_DIR") (/busybox))} 
          {(Lit_Other "]")}
        )
        (AndOr
          children: [
            (C {(build_section)} {(busybox)})
            (C {(rm)} {(-f)} {(DQ ($ VSub_Name "$STAGE_DIR") (/sh))})
          ]
          op_id: Op_DAmp
        )
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {(DQ ($ VSub_Name "$STAGE_DIR") (/toybox))} 
          {(Lit_Other "]")}
        )
        (C {(build_section)} {(toybox)})
      ]
      op_id: Op_DAmp
    )
    (ForEach
      iter_name: i
      iter_words: [
        {(ar)}
        {(as)}
        {(nm)}
        {(cc)}
        {(make)}
        {(ld)}
        {(gcc)}
        {(objdump)}
        {(sh)}
        {($ VSub_Name "$HOST_EXTRA")}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          child: 
            (If
              arms: [
                (if_arm
                  cond: 
                    (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} 
                      {(DQ ($ VSub_Name "$STAGE_DIR") (/) ($ VSub_Name "$i"))} {(Lit_Other "]")}
                    )
                  action: 
                    (CommandList
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [(assign_pair lhs:(LeftVar name:X) rhs:{(0)} spids:[415])]
                          spids: [415]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LeftVar name:FALLBACK)
                              rhs: {(DQ ($ VSub_Name "$STAGE_DIR"))}
                              spids: [419]
                            )
                          ]
                          spids: [419]
                        )
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [
                                {(DQ ($ VSub_Name "$STAGE_DIR") (/which))}
                                {(-a)}
                                {(DQ ($ VSub_Name "$i"))}
                              ]
                              more_env: [
                                (env_pair
                                  name: PATH
                                  val: {(DQ ($ VSub_Name "$SAVEPATH"))}
                                  spids: [425]
                                )
                              ]
                            )
                            (While
                              cond: (C {(read)} {(j)})
                              body: 
                                (DoGroup
                                  child: 
                                    (CommandList
                                      children: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} 
                                                  {
                                                    (DQ ($ VSub_Name "$FALLBACK") (/) 
                                                      ($ VSub_Name "$i")
                                                    )
                                                  } {(Lit_Other "]")}
                                                )
                                              action: 
                                                (AndOr
                                                  children: [
                                                    (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$FALLBACK"))})
                                                    (AndOr
                                                      children: [
                                                        (C {(ln)} {(-sf)} {(DQ ($ VSub_Name "$j"))} 
                                                          {
                                                            (DQ ($ VSub_Name "$FALLBACK") (/) 
                                                              ($ VSub_Name "$i")
                                                            )
                                                          }
                                                        )
                                                        (C {(dienow)})
                                                      ]
                                                      op_id: Op_DPipe
                                                    )
                                                  ]
                                                  op_id: Op_DAmp
                                                )
                                              spids: [-1 470]
                                            )
                                          ]
                                          spids: [-1 503]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:X)
                                              rhs: 
                                                {
                                                  (ArithSubPart
                                                    anode: 
                                                      (ArithBinary
                                                        op_id: Arith_Plus
                                                        left: (ArithWord w:{($ VSub_Name "$X")})
                                                        right: (ArithWord w:{(Lit_Digits 1)})
                                                      )
                                                    spids: [508 512]
                                                  )
                                                }
                                              spids: [507]
                                            )
                                          ]
                                          spids: [507]
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:FALLBACK)
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name "$STAGE_DIR") (/fallback-) 
                                                    ($ VSub_Name "$X")
                                                  )
                                                }
                                              spids: [515]
                                            )
                                          ]
                                          spids: [515]
                                        )
                                      ]
                                    )
                                  spids: [450 523]
                                )
                            )
                          ]
                          negated: False
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: 
                                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} 
                                  {(DQ ($ VSub_Name "$STAGE_DIR") (/) ($ VSub_Name "$i"))} {(Lit_Other "]")}
                                )
                              action: 
                                (CommandList
                                  children: [
                                    (SimpleCommand
                                      words: [
                                        {(echo)}
                                        {(DQ ("Toolchain component missing: ") ($ VSub_Name "$i"))}
                                      ]
                                      redirects: [
                                        (Redirect
                                          op_id: Redir_GreatAnd
                                          arg_word: {(2)}
                                          fd: -1
                                          spids: [554]
                                        )
                                      ]
                                    )
                                    (C {(dienow)})
                                  ]
                                )
                              spids: [-1 544]
                            )
                          ]
                          spids: [-1 561]
                        )
                      ]
                    )
                  spids: [-1 407]
                )
              ]
              spids: [-1 564]
            )
          spids: [387 566]
        )
      spids: [366 -1]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:ET_TU_UBUNTU)
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (SimpleCommand
                      words: [{(DQ ($ VSub_Name "$STAGE_DIR") (/which))} {(gcc.real)}]
                      more_env: [
                        (env_pair
                          name: PATH
                          val: {(DQ ($ VSub_Name "$SAVEPATH"))}
                          spids: [579]
                        )
                      ]
                    )
                  spids: [578 590]
                )
              )
            }
          spids: [576]
        )
      ]
      spids: [576]
    )
    (AndOr
      children: [
        (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} {(DQ ($ VSub_Name "$ET_TU_UBUNTU"))} {(Lit_Other "]")})
        (SimpleCommand
          words: [
            {(ln)}
            {(-s)}
            {(DQ ($ VSub_Name "$ET_TU_UBUNTU"))}
            {(DQ ($ VSub_Name "$STAGE_DIR") (/gcc.real))}
          ]
          redirects: [(Redirect op_id:Redir_Great arg_word:{(/dev/null)} fd:2 spids:[620])]
        )
      ]
      op_id: Op_DAmp
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:PATH)
          rhs: {(DQ (CommandSubPart command_list:(C {(hosttools_path)}) spids:[633635]))}
          spids: [631]
        )
      ]
      spids: [631]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (SimpleCommand
                        words: [
                          {(find)}
                          {(DQ ($ VSub_Name "$STAGE_DIR"))}
                          {(-newer)}
                          {(DQ ($ VSub_Name "$BUILD") (/record-commands))}
                        ]
                        redirects: [
                          (Redirect
                            op_id: Redir_Great
                            arg_word: {(/dev/null)}
                            fd: 2
                            spids: [661]
                          )
                        ]
                      )
                    spids: [647 663]
                  )
                )
              } {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (AndOr
                  children: [
                    (C {(cd)} {(DQ ($ VSub_Name "$TOP"))})
                    (AndOr
                      children: [(C {(more/record-commands.sh)}) (C {(dienow)})]
                      op_id: Op_DPipe
                    )
                  ]
                  op_id: Op_DAmp
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LeftVar name:PATH)
                      rhs: {(DQ ($ VSub_Name "$WRAPDIR"))}
                      spids: [686]
                    )
                  ]
                  spids: [686]
                )
              ]
            )
          spids: [-1 668]
        )
      ]
      spids: [-1 691]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(-z)} 
              {(DQ (CommandSubPart command_list:(C {(which)} {(distccd)}) spids:[727731]))} {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (AndOr
                  children: [
                    (C {(setupfor)} {(distcc)})
                    (AndOr
                      children: [
                        (C {(./configure)} {(--with-included-popt)} {(--disable-Werror)})
                        (AndOr
                          children: [
                            (C {(make)} {(-j)} {(DQ ($ VSub_Name "$CPUS"))})
                            (C {(cp)} {(distcc)} {(distccd)} {(DQ (${ VSub_Name STAGE_DIR))})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
                (C {(cleanup)})
              ]
            )
          spids: [-1 736]
        )
      ]
      spids: [-1 782]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {(DQ (${ VSub_Name STAGE_DIR)) (/genext2fs)} 
              {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (AndOr
                  children: [
                    (C {(setupfor)} {(genext2fs)})
                    (AndOr
                      children: [
                        (C {(./configure)})
                        (AndOr
                          children: [
                            (C {(make)} {(-j)} {($ VSub_Name "$CPUS")})
                            (C {(cp)} {(genext2fs)} {(DQ (${ VSub_Name STAGE_DIR))})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
                (C {(cleanup)})
              ]
            )
          spids: [-1 809]
        )
      ]
      spids: [-1 847]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {(DQ (${ VSub_Name STAGE_DIR)) (/mke2fs)} 
              {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (AndOr
                  children: [
                    (C {(setupfor)} {(e2fsprogs)})
                    (AndOr
                      children: [
                        (C {(./configure)} {(--disable-tls)} {(--disable-nls)} {(--enable-htree)})
                        (AndOr
                          children: [
                            (C {(make)} {(-j)} {(DQ ($ VSub_Name "$CPUS"))})
                            (AndOr
                              children: [
                                (C {(cp)} 
                                  {(misc/) (Lit_LBrace "{") (mke2fs) (Lit_Comma ",") (tune2fs) 
                                    (Lit_RBrace "}")
                                  } {(resize/resize2fs)} {(DQ (${ VSub_Name STAGE_DIR))}
                                )
                                (C {(cp)} {(e2fsck/e2fsck)} 
                                  {(DQ ($ VSub_Name "$STAGE_DIR")) (/fsck.ext2)}
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
                (C {(cleanup)})
              ]
            )
          spids: [-1 900]
        )
      ]
      spids: [-1 965]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {(DQ (${ VSub_Name STAGE_DIR)) (/mksquashfs)} 
              {(Lit_Other "]")}
            )
          action: 
            (CommandList
              children: [
                (AndOr
                  children: [
                    (C {(setupfor)} {(zlib)})
                    (AndOr
                      children: [
                        (C {(./configure)})
                        (AndOr
                          children: [
                            (C {(make)} {(-j)} {($ VSub_Name "$CPUS")})
                            (C {(mv)} {(z) (Lit_Other "*") (.h)} {(libz.a)} {(..)})
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
                (C {(cleanup)})
                (AndOr
                  children: [
                    (C {(setupfor)} {(squashfs)})
                    (AndOr
                      children: [
                        (C {(cd)} {(squashfs-tools)})
                        (AndOr
                          children: [
                            (C {(sed)} {(-i)} {(DQ ("/^XATTR_/d"))} {(Makefile)})
                            (AndOr
                              children: [
                                (SimpleCommand
                                  words: [{(make)} {(-j)} {($ VSub_Name "$CPUS")}]
                                  more_env: [
                                    (env_pair
                                      name: CC
                                      val: {(DQ ($ VSub_Name "$CC") (" -I ../.. -L ../.."))}
                                      spids: [1064]
                                    )
                                  ]
                                )
                                (AndOr
                                  children: [
                                    (C {(cp)} {(mksquashfs)} {(unsquashfs)} 
                                      {(DQ (${ VSub_Name STAGE_DIR))}
                                    )
                                    (C {(rm)} 
                                      {(../../) (Lit_LBrace "{") (z) (Lit_Other "*") (.h) 
                                        (Lit_Comma ",") (libz.a) (Lit_RBrace "}")
                                      }
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          op_id: Op_DAmp
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  op_id: Op_DAmp
                )
                (C {(cleanup)})
              ]
            )
          spids: [-1 989]
        )
      ]
      spids: [-1 1109]
    )
    (If
      arms: [
        (if_arm
          cond: 
            (C {(Lit_Other "[")} {(KW_Bang "!")} {(-z)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (SimpleCommand
                        words: [
                          {(find)}
                          {(DQ ($ VSub_Name "$STAGE_DIR"))}
                          {(-newer)}
                          {(DQ ($ VSub_Name "$BUILD") (/record-commands))}
                        ]
                        redirects: [
                          (Redirect
                            op_id: Redir_Great
                            arg_word: {(/dev/null)}
                            fd: 2
                            spids: [1138]
                          )
                        ]
                      )
                    spids: [1124 1140]
                  )
                )
              } {(Lit_Other "]")}
            )
          action: 
            (AndOr
              children: [
                (C {(cd)} {(DQ ($ VSub_Name "$TOP"))})
                (AndOr
                  children: [(C {(more/record-commands.sh)}) (C {(dienow)})]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DAmp
            )
          spids: [-1 1145]
        )
      ]
      spids: [-1 1162]
    )
    (C {(echo)} {(-e)} 
      {
        (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\e">) ("[32mHost tools build complete.") 
          (EscapedLiteralPart token:<Lit_EscapedChar "\\e">) ("[0m")
        )
      }
    )
  ]
)