(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(source)} {(cluster/lib/logging.sh)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalOr
                      left: (BoolBinary op_id:BoolBinary_eq left:{($ VSub_Pound '$#')} right:{(0)})
                      right: 
                        (LogicalNot
                          child: 
                            (BoolBinary
                              op_id: BoolBinary_EqualTilde
                              left: {($ VSub_Number '$1')}
                              right: 
                                {(Lit_Other '^') (Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '$')}
                            )
                        )
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(read)} {(-p)} 
              {(DQ ('Do you want to run gubernator.sh and upload logs publicly to GCS? [y/n]'))} {(yn)}
            )
            (C {(echo)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: 
                                (BoolBinary
                                  op_id: BoolBinary_EqualTilde
                                  left: {($ VSub_Name '$yn')}
                                  right: 
                                    {(Lit_Other '^') (Lit_Other '[') (Yy) (Lit_Other ']') 
                                      (Lit_Other '$')
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(exit)} {(1)})]
                  spids: [16777215 142]
                )
              ]
              spids: [16777215 150]
            )
          ]
          spids: [16777215 106]
        )
      ]
      spids: [16777215 152]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(which)} {(gsutil)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [162 166]
                          )
                        }
                      right: {(DQ )}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('Could not find gsutil when running ') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ('which gsutil') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>)
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [16777215 176]
        )
      ]
      spids: [16777215 193]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(which)} {(gcloud)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [203 207]
                          )
                        }
                      right: {(DQ )}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('Could not find gcloud when running: ') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ('which gcloud') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>)
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [16777215 217]
        )
      ]
      spids: [16777215 234]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [(C {(gcloud)} {(auth)} {(list)}) (C {(grep)} {(-q)} {(DQ (ACTIVE))})]
                  negated: True
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('Could not find active account when running: ') 
                  (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) ('gcloud auth list') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>)
                )
              }
            )
            (C {(exit)} {(1)})
          ]
          spids: [16777215 261]
        )
      ]
      spids: [16777215 278]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [(assign_pair lhs:(LhsName name:gcs_acl) op:Equal rhs:{(DQ (public-read))} spids:[283])]
      spids: [281]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:bucket_name)
          op: Equal
          rhs: {(DQ (${ VSub_Name USER) (-g8r-logs))}
          spids: [288]
        )
      ]
      spids: [288]
    )
    (C {(echo)} {(DQ )})
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
        {(DQ ('Using bucket ') (${ VSub_Name bucket_name))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[301])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (C {(gsutil)} {(ls)} {(gs) (Lit_Other ':') (//)})
                    (C {(grep)} {(-q)} {(DQ ('gs://') (${ VSub_Name bucket_name) (/))})
                  ]
                  negated: True
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
                {(DQ ('Creating public bucket ') (${ VSub_Name bucket_name))}
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[353])]
            )
            (C {(gsutil)} {(mb)} {(gs) (Lit_Other ':') (//) (${ VSub_Name bucket_name) (/)})
            (C {(gsutil)} {(acl)} {(ch)} {(-u)} {(AllUsers) (Lit_Other ':') (R)} 
              {(gs) (Lit_Other ':') (//) (${ VSub_Name bucket_name)}
            )
          ]
          spids: [16777215 350]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
            {(DQ ('Bucket already exists'))}
          ]
          more_env: [(env_pair name:V val:{(2)} spids:[411])]
        )
      ]
      spids: [408 426]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GCS_JOBS_PATH)
          op: Equal
          rhs: {(DQ ('gs://') (${ VSub_Name bucket_name) (/logs/e2e-node))}
          spids: [432]
        )
      ]
      spids: [432]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ARTIFACTS)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name ARTIFACTS>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (/tmp/_artifacts))})
                spids: [443 449]
              )
            }
          spids: [442]
        )
      ]
      spids: [442]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BUILD_LOG_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name ARTIFACTS) (/build-log.txt))}
          spids: [451]
        )
      ]
      spids: [451]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalNot
                      child: (BoolUnary op_id:BoolUnary_e child:{($ VSub_Name '$BUILD_LOG_PATH')})
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('Could not find build-log.txt at ') (${ VSub_Name BUILD_LOG_PATH))})
            (C {(exit)} {(1)})
          ]
          spids: [16777215 473]
        )
      ]
      spids: [16777215 490]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_line)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(grep)} {(-n)} {(-m)} {(1)} {(DQ ('^='))} {(${ VSub_Name BUILD_LOG_PATH)})
                          (C {(sed)} {(SQ <'s/\\([0-9]*\\).*/\\1/'>)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [500 524]
              )
            }
          spids: [499]
        )
      ]
      spids: [499]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:after_start)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(tail)} {(-n)} {(Lit_Other '+') (${ VSub_Name start_line)} 
                        {(${ VSub_Name BUILD_LOG_PATH)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [530 543]
              )
            }
          spids: [529]
        )
      ]
      spids: [529]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ (${ VSub_Name after_start))}]
      redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(build-log-cut.txt)} spids:[553])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_time_raw)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(grep)} {(-m)} {(1)} {(-o)} 
                        {
                          (SQ 
                            <
'[0-9][0-9][0-9][0-9][[:blank:]][0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9]*'
                            >
                          )
                        } {(build-log-cut.txt)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [561 575]
              )
            }
          spids: [560]
        )
      ]
      spids: [560]
    )
    (C {(rm)} {(build-log-cut.txt)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_time)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {(${ VSub_Name start_time_raw)})
                          (C {(sed)} {(SQ <'s/^.\\{2\\}/&\\//'>)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [585 599]
              )
            }
          spids: [584]
        )
      ]
      spids: [584]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
        {(DQ ('Started at ') (${ VSub_Name start_time))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[601])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:end_time)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(grep)} {(-o)} 
                            {
                              (SQ 
                                <
'[0-9][0-9][0-9][0-9][[:blank:]][0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9]*'
                                >
                              )
                            } {(${ VSub_Name BUILD_LOG_PATH)}
                          )
                          (C {(tail)} {(-1)})
                          (C {(sed)} {(SQ <'s/^.\\{2\\}/&\\//'>)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [623 649]
              )
            }
          spids: [622]
        )
      ]
      spids: [622]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:start_time_epoch)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(date)} {(-d)} {(DQ (${ VSub_Name start_time))} 
                        {(Lit_Other '+') (Lit_Other '%') (s)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [655 669]
              )
            }
          spids: [654]
        )
      ]
      spids: [654]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:end_time_epoch)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(date)} {(-d)} {(DQ (${ VSub_Name end_time))} 
                        {(Lit_Other '+') (Lit_Other '%') (s)}
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [672 686]
              )
            }
          spids: [671]
        )
      ]
      spids: [671]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BUILD_STAMP)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {($ VSub_Name '$start_time')})
                          (C {(sed)} {(SQ <'s/\\///'>)})
                          (C {(sed)} {(SQ <'s/ /_/'>)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [693 713]
              )
            }
          spids: [692]
        )
      ]
      spids: [692]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:GCS_LOGS_PATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name GCS_JOBS_PATH) (/) (${ VSub_Name BUILD_STAMP))}
          spids: [716]
        )
      ]
      spids: [716]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (C {(gsutil)} {(ls)} {(DQ (${ VSub_Name GCS_JOBS_PATH))})
                    (C {(grep)} {(-q)} {(DQ (${ VSub_Name BUILD_STAMP))})
                  ]
                  negated: False
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
                {(DQ ('Log files already uploaded'))}
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[759])]
            )
            (C {(echo)} {(DQ ('Gubernator linked below:'))})
            (C {(echo)} 
              {(DQ (k8s-gubernator.appspot.com/build/) (${ VSub_Name GCS_LOGS_PATH) ('?local=on'))}
            )
            (C {(exit)})
          ]
          spids: [16777215 756]
        )
      ]
      spids: [16777215 795]
    )
    (ForEach
      iter_name: result
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (C {(find)} {(${ VSub_Name ARTIFACTS)} {(-type)} {(d)} {(-name)} {(DQ (results))})
                ]
              )
            left_token: <Left_CommandSub '$('>
            spids: [804 820]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: {($ VSub_Name '$result')}
                                  right: {(DQ )}
                                )
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {($ VSub_Name '$result')}
                                      right: {(DQ (${ VSub_Name ARTIFACTS) (/results))}
                                    )
                                  right: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {($ VSub_Name '$result')}
                                      right: {($ VSub_Name '$ARTIFACTS')}
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(mv)} {($ VSub_Name '$result') (/) (Lit_Other '*')} {($ VSub_Name '$ARTIFACTS')})
                  ]
                  spids: [16777215 861]
                )
              ]
              spids: [16777215 873]
            )
          ]
          spids: [823 875]
        )
      spids: [803 821]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub '$('>
            spids: [887 891]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (BoolUnary op_id:BoolUnary_d child:{(DQ (${ VSub_Name ARTIFACTS))})
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [(C {(ls)} {(-A)} {(DQ (${ VSub_Name ARTIFACTS))})]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [913 923]
                                      )
                                    }
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') 
                          (status)
                        }
                        {(DQ ('Uploading artifacts'))}
                      ]
                      more_env: [(env_pair name:V val:{(2)} spids:[931])]
                    )
                    (AndOr
                      children: [
                        (C {(gsutil)} {(-m)} {(-q)} {(-o)} {(DQ ('GSUtil:use_magicfile=True'))} {(cp)} 
                          {(-a)} {(DQ (${ VSub_Name gcs_acl))} {(-r)} {(-c)} {(-z)} {(log) (Lit_Comma ',') (xml) (Lit_Comma ',') (json)} 
                          {(DQ (${ VSub_Name ARTIFACTS))} {(DQ (${ VSub_Name GCS_LOGS_PATH) (/artifacts))}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [16777215 928]
                )
              ]
              spids: [16777215 1001]
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [894 1006]
        )
      spids: [886 892]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub '$('>
            spids: [1014 1018]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_e child:{(DQ (${ VSub_Name BUILD_LOG_PATH))})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') 
                          (status)
                        }
                        {(DQ ('Uploading build log'))}
                      ]
                      more_env: [(env_pair name:V val:{(2)} spids:[1042])]
                    )
                    (AndOr
                      children: [
                        (C {(gsutil)} {(-q)} {(cp)} {(-Z)} {(-a)} {(DQ (${ VSub_Name gcs_acl))} 
                          {(DQ (${ VSub_Name BUILD_LOG_PATH))} {(DQ (${ VSub_Name GCS_LOGS_PATH))}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [16777215 1039]
                )
              ]
              spids: [16777215 1091]
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [1021 1096]
        )
      spids: [1013 1019]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:version) op:Equal rhs:{(DQ )} spids:[1103])]
      spids: [1103]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_e child:{(DQ (version))}))
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:version)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(cat)} {(DQ (version))})])
                        left_token: <Left_CommandSub '$('>
                        spids: [1124 1130]
                      )
                    }
                  spids: [1123]
                )
              ]
              spids: [1123]
            )
          ]
          spids: [16777215 1120]
        )
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_e child:{(DQ (hack/lib/version.sh))}))
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(export)} {(Lit_VarLike 'KUBE_ROOT=') (DQ (.))})
            (C {(source)} {(DQ (hack/lib/version.sh))})
            (C 
              {(kube) (Lit_Other ':') (Lit_Other ':') (version) (Lit_Other ':') (Lit_Other ':') 
                (get_version_vars)
              }
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:version)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name KUBE_GIT_VERSION>
                          suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )})
                          spids: [1174 1177]
                        )
                      )
                    }
                  spids: [1172]
                )
              ]
              spids: [1172]
            )
          ]
          spids: [1132 1145]
        )
      ]
      spids: [16777215 1180]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name version))}))
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
                {(DQ ('Found Kubernetes version: ') (${ VSub_Name version))}
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[1200])]
            )
          ]
          spids: [16777215 1197]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
            {(DQ ('Could not find Kubernetes version'))}
          ]
          more_env: [(env_pair name:V val:{(2)} spids:[1221])]
        )
      ]
      spids: [1218 1236]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(grep)} {(-Fxq)} {(DQ ('Test Suite Passed'))} {(DQ (${ VSub_Name BUILD_LOG_PATH))})]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:build_result)
                  op: Equal
                  rhs: {(DQ (SUCCESS))}
                  spids: [1262]
                )
              ]
              spids: [1262]
            )
          ]
          spids: [16777215 1259]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:build_result)
              op: Equal
              rhs: {(DQ (FAILURE))}
              spids: [1270]
            )
          ]
          spids: [1270]
        )
      ]
      spids: [1267 1275]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
        {(DQ ('Build result is ') (${ VSub_Name build_result))}
      ]
      more_env: [(env_pair name:V val:{(4)} spids:[1278])]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_e
                      child: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(rm)} {(DQ (${ VSub_Name ARTIFACTS) (/started.json))})]
          spids: [16777215 1313]
        )
      ]
      spids: [16777215 1325]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_e
                      child: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(rm)} {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))})]
          spids: [16777215 1344]
        )
      ]
      spids: [16777215 1356]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
        {(DQ ('Constructing started.json and finished.json files'))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[1359])]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('{'))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1380]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('    ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (version) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (': ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name version) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (',')
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1405]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('    ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (timestamp) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (': ') (${ VSub_Name start_time_epoch) (',')
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1428]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('    ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (jenkins-node) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (': ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) 
            (BracedVarSub
              token: <VSub_Name NODE_NAME>
              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
              spids: [1446 1449]
            ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1453]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('}'))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/started.json))}
          spids: [1468]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('{'))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1484]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('    ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (result) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (': ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name build_result) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (',')
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1509]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ ('    ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (timestamp) 
            (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (': ') (${ VSub_Name end_time_epoch)
          )
        }
      ]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1531]
        )
      ]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ('}'))}]
      redirects: [
        (Redir
          op_id: Redir_DGreat
          fd: 16777215
          arg_word: {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))}
          spids: [1546]
        )
      ]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
        {(DQ ('Uploading started.json and finished.json'))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[1560])]
    )
    (SimpleCommand
      words: [
        {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
        {(DQ ('Run started at ') (${ VSub_Name start_time))}
      ]
      more_env: [(env_pair name:V val:{(2)} spids:[1575])]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:json_file)
          op: Equal
          rhs: {(DQ (${ VSub_Name GCS_LOGS_PATH) (/started.json))}
          spids: [1593]
        )
      ]
      spids: [1593]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub '$('>
            spids: [1608 1612]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
                {
                  (DQ ('Uploading started.json to ') (${ VSub_Name json_file) (' (attempt ') 
                    (${ VSub_Name upload_attempt) (')')
                  )
                }
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[1618])]
            )
            (AndOr
              children: [
                (C {(gsutil)} {(-q)} {(-h)} {(DQ ('Content-Type:application/json'))} {(cp)} {(-a)} 
                  {(DQ (${ VSub_Name gcs_acl))} {(DQ (${ VSub_Name ARTIFACTS) (/started.json))} {(DQ (${ VSub_Name json_file))}
                )
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DPipe
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [1615 1684]
        )
      spids: [1607 1613]
    )
    (ForEach
      iter_name: upload_attempt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(seq)} {(3)})])
            left_token: <Left_CommandSub '$('>
            spids: [1696 1700]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [
                {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)}
                {
                  (DQ ('Uploading finished.json to ') (${ VSub_Name GCS_LOGS_PATH) (' (attempt ') 
                    (${ VSub_Name upload_attempt) (')')
                  )
                }
              ]
              more_env: [(env_pair name:V val:{(2)} spids:[1706])]
            )
            (AndOr
              children: [
                (C {(gsutil)} {(-q)} {(-h)} {(DQ ('Content-Type:application/json'))} {(cp)} {(-a)} 
                  {(DQ (${ VSub_Name gcs_acl))} {(DQ (${ VSub_Name ARTIFACTS) (/finished.json))} {(DQ (${ VSub_Name GCS_LOGS_PATH) (/finished.json))}
                )
                (ControlFlow token:<ControlFlow_Continue continue>)
              ]
              op_id: Op_DPipe
            )
            (ControlFlow token:<ControlFlow_Break break>)
          ]
          spids: [1703 1773]
        )
      spids: [1695 1701]
    )
    (C {(echo)} {(DQ ('Gubernator linked below:'))})
    (C {(echo)} 
      {
        (DQ (k8s-gubernator.appspot.com/build/) (${ VSub_Name bucket_name) (/logs/e2e-node/) 
          (${ VSub_Name BUILD_STAMP)
        )
      }
    )
  ]
)