(CommandList
  children: [
    (C {(echo)} {(DQ ("*** BUILD KERNEL BEGIN ***"))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SRC_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_CommandSub "$(">
                spids: [12 14]
              )
            }
          spids: [11]
        )
      ]
      spids: [11]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:JOB_FACTOR)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(grep)} {(-i)} {(Lit_Other "^") (JOB_FACTOR)} {(.config)})
                            (C {(cut)} {(-f2)} {(-d) (SQ <"=">)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [22 42]
                )
              )
            }
          spids: [20]
        )
      ]
      spids: [20]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NUM_CORES)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(grep)} {(Lit_Other "^") (processor)} {(/proc/cpuinfo)})
                          (C {(wc)} {(-l)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [50 63]
              )
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NUM_JOBS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Star
                    left: (ArithVarRef name:NUM_CORES)
                    right: (ArithVarRef name:JOB_FACTOR)
                  )
                spids: [70 77]
              )
            }
          spids: [69]
        )
      ]
      spids: [69]
    )
    (C {(cd)} {(work/kernel)})
    (C {(rm)} {(-rf)} {(kernel_installed)})
    (C {(mkdir)} {(kernel_installed)})
    (C {(cd)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(ls)} {(-d)} {(linux-) (Lit_Other "*")})])
          left_token: <Left_CommandSub "$(">
          spids: [104 111]
        )
      }
    )
    (C {(echo)} {(DQ ("Preparing kernel work area..."))})
    (C {(make)} {(mrproper)} {(-j)} {($ VSub_Name "$NUM_JOBS")})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:USE_PREDEFINED_KERNEL_CONFIG)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (C {(grep)} {(-i)} {(Lit_Other "^") (USE_PREDEFINED_KERNEL_CONFIG)} 
                              {($ VSub_Name "$SRC_DIR") (/.config)}
                            )
                            (C {(cut)} {(-f2)} {(-d) (SQ <"=">)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub "$(">
                  spids: [137 158]
                )
              )
            }
          spids: [135]
        )
      ]
      spids: [135]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$USE_PREDEFINED_KERNEL_CONFIG"))} 
                  {(Lit_Other "=")} {(DQ (true))} {(-a)} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$SRC_DIR") (/minimal_config/kernel.config)} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ("Config file ") ($ VSub_Name "$SRC_DIR") 
                  ("/minimal_config/kernel.config does not exist.")
                )
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USE_PREDEFINED_KERNEL_CONFIG)
                  op: Equal
                  rhs: {(DQ (false))}
                  spids: [201]
                )
              ]
              spids: [201]
            )
          ]
          spids: [-1 189]
        )
      ]
      spids: [-1 206]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$USE_PREDEFINED_KERNEL_CONFIG"))} 
                  {(Lit_Other "=")} {(DQ (true))} {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ("Using config file ") ($ VSub_Name "$SRC_DIR") (/minimal_config/kernel.config))}
            )
            (C {(cp)} {(-f)} {($ VSub_Name "$SRC_DIR") (/minimal_config/kernel.config)} {(.config)})
          ]
          spids: [-1 227]
        )
      ]
      else_action: [
        (C {(make)} {(defconfig)} {(-j)} {($ VSub_Name "$NUM_JOBS")})
        (C {(echo)} {(DQ ("Generated default kernel configuration."))})
        (C {(sed)} {(-i)} 
          {
            (DQ ("s/.*CONFIG_DEFAULT_HOSTNAME.*/CONFIG_DEFAULT_HOSTNAME=") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (minimal) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (/)
            )
          } {(.config)}
        )
        (C {(sed)} {(-i)} {(DQ ("s/.*CONFIG_OVERLAY_FS.*/CONFIG_OVERLAY_FS=y/"))} {(.config)})
        (C {(sed)} {(-i)} 
          {
            (DQ ("s/.*") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) ("(CONFIG_KERNEL_.*") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (")=y/") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) ("#") 
              (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) ("1 is not set/")
            )
          } {(.config)}
        )
        (C {(sed)} {(-i)} {(DQ ("s/.*CONFIG_KERNEL_XZ.*/CONFIG_KERNEL_XZ=y/"))} {(.config)})
        (C {(sed)} {(-i)} {(DQ ("s/.*CONFIG_FB_VESA.*/CONFIG_FB_VESA=y/"))} {(.config)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:USE_BOOT_LOGO)
              op: Equal
              rhs: 
                {
                  (DQ 
                    (CommandSubPart
                      command_list: 
                        (CommandList
                          children: [
                            (Pipeline
                              children: [
                                (C {(grep)} {(-i)} {(Lit_Other "^") (USE_BOOT_LOGO)} 
                                  {($ VSub_Name "$SRC_DIR") (/.config)}
                                )
                                (C {(cut)} {(-f2)} {(-d) (SQ <"=">)})
                              ]
                              negated: False
                            )
                          ]
                        )
                      left_token: <Left_CommandSub "$(">
                      spids: [380 401]
                    )
                  )
                }
              spids: [378]
            )
          ]
          spids: [378]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$USE_BOOT_LOGO"))} {(Lit_Other "=")} 
                      {(DQ (true))} {(Lit_Other "]")}
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              action: [
                (C {(sed)} {(-i)} {(DQ ("s/.*CONFIG_LOGO_LINUX_CLUT224.*/CONFIG_LOGO_LINUX_CLUT224=y/"))} 
                  {(.config)}
                )
                (C {(echo)} {(DQ ("Boot logo is enabled."))})
              ]
              spids: [-1 424]
            )
          ]
          else_action: [
            (C {(sed)} {(-i)} 
              {
                (DQ ("s/.*CONFIG_LOGO_LINUX_CLUT224.*/") 
                  (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) ("# CONFIG_LOGO_LINUX_CLUT224 is not set/")
                )
              } {(.config)}
            )
            (C {(echo)} {(DQ ("Boot logo is disabled."))})
          ]
          spids: [445 468]
        )
        (C {(sed)} {(-i)} 
          {
            (DQ ("s/^CONFIG_DEBUG_KERNEL.*/") (EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) 
              ("# CONFIG_DEBUG_KERNEL is not set/")
            )
          } {(.config)}
        )
        (C {(sed)} {(-i)} {(DQ ("s/.*CONFIG_EFI_STUB.*/CONFIG_EFI_STUB=y/"))} {(.config)})
        (C {(grep)} {(-q)} {(DQ ("CONFIG_X86_32=y"))} {(.config)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(Lit_Other "=")} {(1)} {(Lit_Other "]")})
                  terminator: <Op_Semi ";">
                )
              ]
              action: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ("CONFIG_EFI_MIXED=y"))}]
                  redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(.config)} spids:[558])]
                )
              ]
              spids: [-1 545]
            )
          ]
          spids: [-1 563]
        )
      ]
      spids: [253 565]
    )
    (C {(echo)} {(DQ ("Building kernel..."))})
    (C {(make)} {(Lit_VarLike "CFLAGS=") (DQ ("-Os -s -fno-stack-protector -U_FORTIFY_SOURCE"))} 
      {(bzImage)} {(-j)} {($ VSub_Name "$NUM_JOBS")}
    )
    (C {(cp)} {(arch/x86/boot/bzImage)} 
      {($ VSub_Name "$SRC_DIR") (/work/kernel/kernel_installed/kernel)}
    )
    (C {(echo)} {(DQ ("Generating kernel headers..."))})
    (C {(make)} 
      {(Lit_VarLike "INSTALL_HDR_PATH=") ($ VSub_Name "$SRC_DIR") (/work/kernel/kernel_installed)} {(headers_install)} {(-j)} {($ VSub_Name "$NUM_JOBS")}
    )
    (C {(cd)} {($ VSub_Name "$SRC_DIR")})
    (C {(echo)} {(DQ ("*** BUILD KERNEL END ***"))})
  ]
)