(CommandList
  children: [
    (FuncDef
      name: process_text_file
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LeftVar name:X) rhs:{(0)} spids:[15])]
              spids: [15]
            )
            (Pipeline
              children: [
                (C {(sed)} {(-e)} 
                  {
                    (SQ 
                      <
"s/\\(................................................................................\\)/\\1\\n/g"
                      >
                    )
                  } {(DQ ($ VSub_Number "$1"))}
                )
                (C {(tail)} {(-n)} {(25)})
                (While
                  cond: (C {(read)} {(i)})
                  body: 
                    (DoGroup
                      child: 
                        (CommandList
                          children: [
                            (Pipeline
                              children: [
                                (C {(echo)} {(-n)} {(DQ ($ VSub_Name "$i"))})
                                (C {(sed)} {(-e)} {(SQ <"s@\\&@\\&amp;@g">)} {(-e)} {(SQ <"s@<@\\&lt;@g">)} 
                                  {(-e)} {(SQ <"s@>@\\&gt;@g">)}
                                )
                              ]
                              negated: False
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: 
                                    (C {(Lit_Other "[")} {($ VSub_Name "$X")} {(-eq)} {(0)} 
                                      {(Lit_Other "]")}
                                    )
                                  action: 
                                    (CommandList
                                      children: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:X)
                                              rhs: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name i>
                                                    prefix_op: VSub_Pound
                                                    spids: [111 114]
                                                  )
                                                }
                                              spids: [110]
                                            )
                                          ]
                                          spids: [110]
                                        )
                                        (While
                                          cond: 
                                            (C {(Lit_Other "[")} {($ VSub_Name "$X")} {(-lt)} {(80)} 
                                              {(Lit_Other "]")}
                                            )
                                          body: 
                                            (DoGroup
                                              child: 
                                                (CommandList
                                                  children: [
                                                    (C {(echo)} {(-n)} {(SQ <"&nbsp;">)})
                                                    (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: [143 147]
                                                              )
                                                            }
                                                          spids: [142]
                                                        )
                                                      ]
                                                      spids: [142]
                                                    )
                                                  ]
                                                )
                                              spids: [130 150]
                                            )
                                        )
                                      ]
                                    )
                                  spids: [-1 107]
                                )
                              ]
                              spids: [-1 153]
                            )
                            (C {(echo)})
                          ]
                        )
                      spids: [55 159]
                    )
                )
              ]
              negated: False
            )
          ]
          spids: [12]
        )
      spids: [8 11]
    )
    (FuncDef
      name: wrap_screenshot
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(SQ <"</center></td></tr><tr>">)})
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (HereDoc
                  op_id: Redir_DLess
                  arg_word: 
                    {
                      (DQ ("<td>\n") ("<a href=bootlog-") ($ VSub_Number "$1") 
                        (".txt>boot log</a></li>\n") ("<a href=../bin/cross-compiler-") ($ VSub_Number "$1") (".tar.bz2>cross&nbsp;compiler</a><br>\n") 
                        ("<a href=../bin/native-compiler-") ($ VSub_Number "$1") (".tar.bz2>native&nbsp;compiler</a><br>\n") ("<a href=../bin/root-filesystem-") 
                        ($ VSub_Number "$1") (".tar.bz2>root&nbsp;filesystem</a><br>\n") ("<a href=../bin/system-image-") ($ VSub_Number "$1") 
                        (".tar.bz2>system&nbsp;image</a><br>\n") ("\n") ("<hr />\n") ("<a href=../bin/busybox-") ($ VSub_Number "$1") (">busybox&nbsp;binary</a><br>\n") 
                        ("<a href=../bin/dropbearmulti-") ($ VSub_Number "$1") (">dropbear&nbsp;binary</a><br>\n") ("<a href=../bin/strace-") ($ VSub_Number "$1") 
                        (">strace&nbsp;binary</a><br>\n") ("</ul></td>\n")
                      )
                    }
                  fd: -1
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [181]
                )
              ]
            )
            (C {(echo)} {(SQ <"<td>">)})
            (C {(echo)} {(SQ <"<table bgcolor=#000000><tr><td><font color=#ffffff size=-2><pre>">)})
            (C {(process_text_file)} {(DQ (bootlog-) ($ VSub_Number "$1") (.txt))})
            (C {(echo)} {(SQ <"</pre></font></td></tr></table></td>">)})
            (C {(echo)})
            (C {(echo)} {(SQ <"</tr></table></td>">)})
          ]
          spids: [168]
        )
      spids: [164 167]
    )
    (C {(more/for-each-target.sh)} 
      {
        (SQ 
          <
"(sleep 20 && echo -n cat \"/proc\" && sleep 1 && echo /cpuinfo && sleep 2 && echo exit) | more/run-emulator-from-build.sh $TARGET | tee www/screenshots/bootlog-$TARGET.txt"
          >
        )
      }
    )
    (C {(cd)} {(www/screenshots)})
    (C {(sed)} {(-i)} 
      {
        (CommandSubPart
          command_list: (C {(echo)} {(-e)} {(SQ <"s/\\033\\[6n//g;s/\\015$//">)})
          spids: [252 260]
        )
      } {(bootlog-) (Lit_Other "*") (.txt)}
    )
    (ForEach
      iter_name: i
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (Pipeline
                children: [
                  (C {(ls)} {(bootlog-) (Lit_Other "*") (.txt)})
                  (C {(sed)} {(SQ <"s/bootlog-\\(.*\\)\\.txt/\\1/">)})
                ]
                negated: False
              )
            spids: [277 291]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          child: 
            (SimpleCommand
              words: [{(wrap_screenshot)} {(DQ ($ VSub_Name "$i"))}]
              redirects: [
                (Redirect
                  op_id: Redir_Great
                  arg_word: {(DQ (screenshot-) ($ VSub_Name "$i") (.html))}
                  fd: -1
                  spids: [302]
                )
              ]
            )
          spids: [293 310]
        )
      spids: [276 -1]
    )
  ]
)