(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (C {(source)} {(build/common.sh)})
    (C {(source)} {(benchmarks/common.sh)})
    (FuncDef
      name: _dump-if-exists
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:path)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [176]
                )
              ]
              spids: [174]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {($ VSub_Number '$2')}
                  spids: [182]
                )
              ]
              spids: [180]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(test)} {(-f)} {($ VSub_Name '$path')})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
            )
            (SimpleCommand
              words: [{(cat)} {($ VSub_Name '$path')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out')}
                  spids: [201]
                )
              ]
            )
          ]
          spids: [171]
        )
      spids: [167 170]
    )
    (FuncDef
      name: dump-shell-id
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sh)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [227]
                )
              ]
              spids: [225]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[237])]
              spids: [235]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(basename)} {($ VSub_Name '$sh')})])
                        left_token: <Left_CommandSub '$('>
                        spids: [241 245]
                      )
                    }
                  spids: [240]
                )
              ]
              spids: [240]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out_dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {(_tmp) (Lit_Slash /) (shell-id) (Lit_Slash /) ($ VSub_Name '$name')}
                          )
                        spids: [252 260]
                      )
                    }
                  spids: [251]
                )
              ]
              spids: [249]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')})
            (Case
              to_match: {($ VSub_Name '$sh')}
              arms: [
                (case_arm
                  pat_list: [{(bin/osh)} {(_bin/osh)}]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:branch) op:Equal spids:[290])]
                      spids: [288]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:branch)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(git)} {(rev-parse)} {(--abbrev-ref)} {(HEAD)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [294 302]
                              )
                            }
                          spids: [293]
                        )
                      ]
                      spids: [293]
                    )
                    (SimpleCommand
                      words: [{(echo)} {($ VSub_Name '$branch')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {($ VSub_Name '$out_dir') (/git-branch.txt)}
                          spids: [309]
                        )
                      ]
                    )
                    (SimpleCommand
                      words: [{(git)} {(rev-parse)} {($ VSub_Name '$branch')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {($ VSub_Name '$out_dir') (/git-commit-hash.txt)}
                          spids: [321]
                        )
                      ]
                    )
                  ]
                  spids: [282 285 327 16777215]
                )
              ]
              spids: [275 279 330]
            )
            (Case
              to_match: {($ VSub_Name '$name')}
              arms: [
                (case_arm
                  pat_list: [{(bash)} {(zsh)}]
                  action: [
                    (SimpleCommand
                      words: [{($ VSub_Name '$sh')} {(--version)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {($ VSub_Name '$out_dir') (/version.txt)}
                          spids: [351]
                        )
                      ]
                    )
                  ]
                  spids: [341 344 357 16777215]
                )
                (case_arm
                  pat_list: [{(osh)}]
                  action: [
                    (SimpleCommand
                      words: [{($ VSub_Name '$sh')} {(--version)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {($ VSub_Name '$out_dir') (/osh-version.txt)}
                          spids: [368]
                        )
                      ]
                    )
                  ]
                  spids: [360 361 374 16777215]
                )
                (case_arm
                  pat_list: [{(dash)} {(mksh)}]
                  action: [
                    (SimpleCommand
                      words: [{(dpkg)} {(-s)} {($ VSub_Name '$name')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {($ VSub_Name '$out_dir') (/dpkg-version.txt)}
                          spids: [393]
                        )
                      ]
                    )
                  ]
                  spids: [377 380 399 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(die)} {(DQ ("Invalid shell '") ($ VSub_Name '$name') ("'"))})]
                  spids: [402 403 415 16777215]
                )
              ]
              spids: [334 338 418]
            )
          ]
          spids: [222]
        )
      spids: [218 221]
    )
    (FuncDef
      name: _shell-id-hash
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [432]
                )
              ]
              spids: [430]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:file) op:Equal spids:[439])]
              spids: [437]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {($ VSub_Name '$src') (/version.txt)}
                  spids: [443]
                )
              ]
              spids: [443]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [(C {(test)} {(-f)} {($ VSub_Name '$file')}) (C {(cat)} {($ VSub_Name '$file')})]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {($ VSub_Name '$src') (/dpkg-version.txt)}
                  spids: [466]
                )
              ]
              spids: [466]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-f)} {($ VSub_Name '$file')})
                (C {(egrep)} {(SQ <'^Version'>)} {($ VSub_Name '$file')})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {($ VSub_Name '$src') (/osh-version.txt)}
                  spids: [493]
                )
              ]
              spids: [493]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(test)} {(-f)} {($ VSub_Name '$file')})
                (C {(egrep)} {(SQ <'^Oil version|^Interpreter'>)} {($ VSub_Name '$file')})
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {($ VSub_Name '$src') (/git-commit-hash.txt)}
                  spids: [520]
                )
              ]
              spids: [520]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [(C {(test)} {(-f)} {($ VSub_Name '$file')}) (C {(cat)} {($ VSub_Name '$file')})]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [427]
        )
      spids: [423 426]
    )
    (FuncDef
      name: publish-shell-id
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [558]
                )
              ]
              spids: [556]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest_base)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {(..) (Lit_Slash /) (benchmark-data) (Lit_Slash /) (shell-id)}
                          )
                        spids: [568 576]
                      )
                    }
                  spids: [567]
                )
              ]
              spids: [565]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Name '$src')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [583 587]
                      )
                    }
                  spids: [582]
                )
              ]
              spids: [580]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:hash) op:Equal spids:[592])]
              spids: [590]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hash)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [(C {(_shell-id-hash)} {($ VSub_Name '$src')}) (C {(md5sum)})]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [605 613]
                      )
                    }
                  spids: [604]
                )
              ]
              spids: [604]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:id)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name hash>
                          suffix_op: 
                            (Slice
                              begin: (ArithWord w:{(Lit_Digits 0)})
                              length: (ArithWord w:{(Lit_Digits 8)})
                            )
                          spids: [624 630]
                        )
                      )
                    }
                  spids: [622]
                )
              ]
              spids: [620]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$dest_base') (/) ($ VSub_Name '$name') (-) ($ VSub_Name '$id'))
                    }
                  spids: [636]
                )
              ]
              spids: [634]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$dest')})
            (C {(cp)} {(--no-target-directory)} {(--recursive)} {($ VSub_Name '$src') (/)} 
              {($ VSub_Name '$dest') (/)}
            )
            (SimpleCommand
              words: [{(echo)} {($ VSub_Name '$hash')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$dest') (/HASH.txt)}
                  spids: [672]
                )
              ]
            )
            (C {(log)} {(DQ ('Published shell ID to ') ($ VSub_Name '$dest'))})
            (C {(echo)} {($ VSub_Name '$id')})
          ]
          spids: [553]
        )
      spids: [549 552]
    )
    (FuncDef
      name: dump-host-id
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out_dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {(_tmp) (Lit_Slash /) (host-id) (Lit_Slash /) 
                                (CommandSubPart
                                  command_list: (CommandList children:[(C {(hostname)})])
                                  left_token: <Left_CommandSub '$('>
                                  spids: [743 745]
                                )
                              }
                          )
                        spids: [736 746]
                      )
                    }
                  spids: [735]
                )
              ]
              spids: [733]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')})
            (SimpleCommand
              words: [{(hostname)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out_dir') (/hostname.txt)}
                  spids: [760]
                )
              ]
            )
            (SimpleCommand
              words: [{(uname)} {(-m)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out_dir') (/machine.txt)}
                  spids: [787]
                )
              ]
            )
            (BraceGroup
              children: [(C {(uname)} {(--kernel-release)}) (C {(uname)} {(--kernel-version)})]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out_dir') (/kernel.txt)}
                  spids: [812]
                )
              ]
              spids: [797]
            )
            (C {(_dump-if-exists)} {(/etc/lsb-release)} {($ VSub_Name '$out_dir') (/lsb-release.txt)})
            (SimpleCommand
              words: [{(cat)} {(/proc/cpuinfo)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out_dir') (/cpuinfo.txt)}
                  spids: [832]
                )
              ]
            )
            (SimpleCommand
              words: [{(cat)} {(/proc/meminfo)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out_dir') (/meminfo.txt)}
                  spids: [850]
                )
              ]
            )
          ]
          spids: [730]
        )
      spids: [726 729]
    )
    (FuncDef
      name: _host-id-hash
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [882]
                )
              ]
              spids: [880]
            )
            (C {(cat)} {($ VSub_Name '$src') (/machine.txt)})
            (C {(cat)} {($ VSub_Name '$src') (/kernel.txt)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file)
                  op: Equal
                  rhs: {($ VSub_Name '$src') (/lsb-release.txt)}
                  spids: [922]
                )
              ]
              spids: [920]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [(C {(test)} {(-f)} {($ VSub_Name '$file')}) (C {(cat)} {($ VSub_Name '$file')})]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [877]
        )
      spids: [873 876]
    )
    (FuncDef
      name: publish-host-id
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [960]
                )
              ]
              spids: [958]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest_base)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {(..) (Lit_Slash /) (benchmark-data) (Lit_Slash /) (host-id)}
                          )
                        spids: [970 978]
                      )
                    }
                  spids: [969]
                )
              ]
              spids: [967]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Name '$src')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [985 989]
                      )
                    }
                  spids: [984]
                )
              ]
              spids: [982]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:hash) op:Equal spids:[994])]
              spids: [992]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hash)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [(C {(_host-id-hash)} {($ VSub_Name '$src')}) (C {(md5sum)})]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [998 1006]
                      )
                    }
                  spids: [997]
                )
              ]
              spids: [997]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:id)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name hash>
                          suffix_op: 
                            (Slice
                              begin: (ArithWord w:{(Lit_Digits 0)})
                              length: (ArithWord w:{(Lit_Digits 8)})
                            )
                          spids: [1017 1023]
                        )
                      )
                    }
                  spids: [1015]
                )
              ]
              spids: [1013]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$dest_base') (/) ($ VSub_Name '$name') (-) ($ VSub_Name '$id'))
                    }
                  spids: [1029]
                )
              ]
              spids: [1027]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$dest')})
            (C {(cp)} {(--no-target-directory)} {(--recursive)} {($ VSub_Name '$src') (/)} 
              {($ VSub_Name '$dest') (/)}
            )
            (SimpleCommand
              words: [{(echo)} {($ VSub_Name '$hash')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$dest') (/HASH.txt)}
                  spids: [1065]
                )
              ]
            )
            (C {(log)} {(DQ ('Published host ID to ') ($ VSub_Name '$dest'))})
            (C {(echo)} {($ VSub_Name '$id')})
          ]
          spids: [955]
        )
      spids: [951 954]
    )
    (FuncDef
      name: dump-compiler-id
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:cc)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1111]
                )
              ]
              spids: [1109]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out_dir)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {(_tmp) (Lit_Slash /) (compiler-id) (Lit_Slash /) 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(basename)} {($ VSub_Name '$cc')})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [1128 1132]
                                )
                              }
                          )
                        spids: [1121 1133]
                      )
                    }
                  spids: [1120]
                )
              ]
              spids: [1118]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$out_dir')})
            (Case
              to_match: {($ VSub_Name '$cc')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '*') (/gcc)}]
                  action: [(C {($ VSub_Name '$cc')} {(--version)})]
                  spids: [1152 1154 1166 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*') (/clang)}]
                  action: [(C {($ VSub_Name '$cc')} {(--version)})]
                  spids: [1169 1171 1183 16777215]
                )
              ]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out_dir') (/version.txt)}
                  spids: [1188]
                )
              ]
              spids: [1145 1149 1186]
            )
          ]
          spids: [1106]
        )
      spids: [1102 1105]
    )
    (FuncDef
      name: test-compiler-id
      body: 
        (BraceGroup
          children: [
            (C {(dump-compiler-id)} {(gcc)})
            (C {(dump-compiler-id)} {($ VSub_Name '$CLANG')})
            (C {(head)} {(_tmp/compiler-id/) (Lit_Other '*') (/version.txt)})
          ]
          spids: [1200]
        )
      spids: [1196 1199]
    )
    (FuncDef
      name: _compiler-id-hash
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1231]
                )
              ]
              spids: [1229]
            )
            (Pipeline
              children: [
                (C {(cat)} {($ VSub_Name '$src') (/version.txt)})
                (C {(grep)} {(-v)} {(InstalledDir)})
              ]
              negated: F
            )
          ]
          spids: [1226]
        )
      spids: [1222 1225]
    )
    (FuncDef
      name: publish-compiler-id
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1269]
                )
              ]
              spids: [1267]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest_base)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {(..) (Lit_Slash /) (benchmark-data) (Lit_Slash /) (compiler-id)}
                          )
                        spids: [1279 1287]
                      )
                    }
                  spids: [1278]
                )
              ]
              spids: [1276]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:name)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(basename)} {($ VSub_Name '$src')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1294 1298]
                      )
                    }
                  spids: [1293]
                )
              ]
              spids: [1291]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:hash) op:Equal spids:[1303])]
              spids: [1301]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:hash)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(_compiler-id-hash)} {($ VSub_Name '$src')})
                                  (C {(md5sum)})
                                ]
                                negated: F
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1307 1315]
                      )
                    }
                  spids: [1306]
                )
              ]
              spids: [1306]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:id)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name hash>
                          suffix_op: 
                            (Slice
                              begin: (ArithWord w:{(Lit_Digits 0)})
                              length: (ArithWord w:{(Lit_Digits 8)})
                            )
                          spids: [1326 1332]
                        )
                      )
                    }
                  spids: [1324]
                )
              ]
              spids: [1322]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:dest)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name '$dest_base') (/) ($ VSub_Name '$name') (-) ($ VSub_Name '$id'))
                    }
                  spids: [1338]
                )
              ]
              spids: [1336]
            )
            (C {(mkdir)} {(-p)} {($ VSub_Name '$dest')})
            (C {(cp)} {(--no-target-directory)} {(--recursive)} {($ VSub_Name '$src') (/)} 
              {($ VSub_Name '$dest') (/)}
            )
            (SimpleCommand
              words: [{(echo)} {($ VSub_Name '$hash')}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$dest') (/HASH.txt)}
                  spids: [1374]
                )
              ]
            )
            (C {(log)} {(DQ ('Published compiler ID to ') ($ VSub_Name '$dest'))})
            (C {(echo)} {($ VSub_Name '$id')})
          ]
          spids: [1264]
        )
      spids: [1260 1263]
    )
    (FuncDef
      name: shell-provenance
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:job_id) op:Equal spids:[1438])]
              spids: [1436]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:job_id)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(date)} 
                                  {(Lit_Other '+') (Lit_Other '%') (Y-) (Lit_Other '%') (m-) 
                                    (Lit_Other '%') (d__) (Lit_Other '%') (H-) (Lit_Other '%') (M-) (Lit_Other '%') (S)
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [1443 1459]
                        )
                      )
                    }
                  spids: [1441]
                )
              ]
              spids: [1441]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:host) op:Equal spids:[1465])]
              spids: [1463]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(hostname)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [1469 1471]
                      )
                    }
                  spids: [1468]
                )
              ]
              spids: [1468]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: {(_tmp/) (${ VSub_Name host) (.) (${ VSub_Name job_id) (.provenance.txt)}
                  spids: [1481]
                )
              ]
              spids: [1479]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_dir)
                  op: Equal
                  rhs: {(_tmp/host-id/) ($ VSub_Name '$host')}
                  spids: [1496]
                )
              ]
              spids: [1494]
            )
            (C {(dump-host-id)} {($ VSub_Name '$tmp_dir')})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:host_hash) op:Equal spids:[1509])]
              spids: [1507]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host_hash)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(publish-host-id)} {($ VSub_Name '$tmp_dir')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1513 1517]
                      )
                    }
                  spids: [1512]
                )
              ]
              spids: [1512]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:shell_hash) op:Equal spids:[1523])]
              spids: [1521]
            )
            (ForEach
              iter_name: sh_path
              iter_words: [{(bash)} {(dash)} {(mksh)} {(zsh)} {(bin/osh)} {(_bin/osh)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(basename)} {($ VSub_Name '$sh_path')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1556 1560]
                              )
                            }
                          spids: [1555]
                        )
                      ]
                      spids: [1553]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:tmp_dir)
                          op: Equal
                          rhs: {(_tmp/shell-id/) ($ VSub_Name '$name')}
                          spids: [1564]
                        )
                      ]
                      spids: [1564]
                    )
                    (C {(dump-shell-id)} {($ VSub_Name '$sh_path')} {($ VSub_Name '$tmp_dir')})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:shell_hash)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(publish-shell-id)} {($ VSub_Name '$tmp_dir')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1578 1582]
                              )
                            }
                          spids: [1577]
                        )
                      ]
                      spids: [1577]
                    )
                    (C {(echo)} 
                      {
                        (DQ ($ VSub_Name '$job_id') (' ') ($ VSub_Name '$host') (' ') 
                          ($ VSub_Name '$host_hash') (' ') ($ VSub_Name '$sh_path') (' ') ($ VSub_Name '$shell_hash')
                        )
                      }
                    )
                  ]
                  spids: [1546 1601]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out')}
                  spids: [1603]
                )
              ]
              spids: [1532 1544]
            )
            (C {(log)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
            (C {(echo)} {($ VSub_Name '$out')})
          ]
          spids: [1433]
        )
      spids: [1429 1432]
    )
    (FuncDef
      name: compiler-provenance
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:job_id) op:Equal spids:[1638])]
              spids: [1636]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:job_id)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(date)} 
                                  {(Lit_Other '+') (Lit_Other '%') (Y-) (Lit_Other '%') (m-) 
                                    (Lit_Other '%') (d__) (Lit_Other '%') (H-) (Lit_Other '%') (M-) (Lit_Other '%') (S)
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [1643 1659]
                        )
                      )
                    }
                  spids: [1641]
                )
              ]
              spids: [1641]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:host) op:Equal spids:[1665])]
              spids: [1663]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(hostname)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [1669 1671]
                      )
                    }
                  spids: [1668]
                )
              ]
              spids: [1668]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:out)
                  op: Equal
                  rhs: 
                    {(_tmp/) (${ VSub_Name host) (.) (${ VSub_Name job_id) (.compiler-provenance.txt)}
                  spids: [1681]
                )
              ]
              spids: [1679]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_dir)
                  op: Equal
                  rhs: {(_tmp/host-id/) ($ VSub_Name '$host')}
                  spids: [1696]
                )
              ]
              spids: [1694]
            )
            (C {(dump-host-id)} {($ VSub_Name '$tmp_dir')})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:host_hash) op:Equal spids:[1709])]
              spids: [1707]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:host_hash)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(publish-host-id)} {($ VSub_Name '$tmp_dir')})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1713 1717]
                      )
                    }
                  spids: [1712]
                )
              ]
              spids: [1712]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:compiler_hash) op:Equal spids:[1723])]
              spids: [1721]
            )
            (ForEach
              iter_name: compiler_path
              iter_words: [
                {
                  (CommandSubPart
                    command_list: (CommandList children:[(C {(which)} {(gcc)})])
                    left_token: <Left_CommandSub '$('>
                    spids: [1737 1741]
                  )
                }
                {($ VSub_Name '$CLANG')}
              ]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:name)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(basename)} {($ VSub_Name '$compiler_path')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1752 1756]
                              )
                            }
                          spids: [1751]
                        )
                      ]
                      spids: [1749]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:tmp_dir)
                          op: Equal
                          rhs: {(_tmp/compiler-id/) ($ VSub_Name '$name')}
                          spids: [1760]
                        )
                      ]
                      spids: [1760]
                    )
                    (C {(dump-compiler-id)} {($ VSub_Name '$compiler_path')} {($ VSub_Name '$tmp_dir')})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:compiler_hash)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(publish-compiler-id)} {($ VSub_Name '$tmp_dir')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1774 1778]
                              )
                            }
                          spids: [1773]
                        )
                      ]
                      spids: [1773]
                    )
                    (C {(echo)} 
                      {
                        (DQ ($ VSub_Name '$job_id') (' ') ($ VSub_Name '$host') (' ') 
                          ($ VSub_Name '$host_hash') (' ') ($ VSub_Name '$compiler_path') (' ') ($ VSub_Name '$compiler_hash')
                        )
                      }
                    )
                  ]
                  spids: [1746 1797]
                )
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {($ VSub_Name '$out')}
                  spids: [1799]
                )
              ]
              spids: [1736 1744]
            )
            (C {(log)} {(DQ ('Wrote ') ($ VSub_Name '$out'))})
            (C {(echo)} {($ VSub_Name '$out')})
          ]
          spids: [1633]
        )
      spids: [1629 1632]
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)