(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-o)} {(errexit)})
    (C {(Id.KW_Set set)} {(-o)} {(nounset)})
    (C {(Id.KW_Set set)} {(-o)} {(pipefail)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:68)
                command_list: 
                  (command.CommandList
                    children: [
                      (command.AndOr
                        ops: [Id.Op_DAmp]
                        children: [
                          (C {(cd)} 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:71)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})]
                                  )
                              ) (/..)
                            }
                          )
                          (C {(pwd)})
                        ]
                      )
                    ]
                  )
              )
            }
          spids: [67]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DEFAULT_KUBECONFIG)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:HOME span_id:91)
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(.)})
                ) (/.kube/config)
              )
            }
          spids: [88]
        )
      ]
    )
    (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/hack/lib/util.sh))})
    (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/lib/logging.sh))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_RELEASE_VERSION_REGEX)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('^v(0|[1-9][0-9]*)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:132)
                ) ('.(0|[1-9][0-9]*)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:134)
                ) ('.(0|[1-9][0-9]*)(-([a-zA-Z0-9]+)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:136)
                ) ('.(0|[1-9][0-9]*))?') (Id.Lit_Other '$')
              )
            }
          spids: [129]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_RELEASE_VERSION_DASHED_REGEX)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)(-([a-zA-Z0-9]+)-(0|[1-9][0-9]*))?'
                )
              )
            }
          spids: [141]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_CI_VERSION_REGEX)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ('^v(0|[1-9][0-9]*)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:162)
                ) ('.(0|[1-9][0-9]*)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:164)
                ) ('.(0|[1-9][0-9]*)-([a-zA-Z0-9]+)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:166)
                ) ('.(0|[1-9][0-9]*)(') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:168)
                ) ('.(0|[1-9][0-9]*)') 
                (word_part.EscapedLiteral
                  token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:170)
                ) ('+[-0-9a-z]*)?') (Id.Lit_Other '$')
              )
            }
          spids: [159]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_CI_VERSION_DASHED_REGEX)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (
'^v(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-(0|[1-9][0-9]*)-([a-zA-Z0-9]+)-(0|[1-9][0-9]*)(-(0|[1-9][0-9]*)'
                ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\\\' span_id:178)) 
                ('+[-0-9a-z]*)?')
              )
            }
          spids: [175]
        )
      ]
    )
    (command.ShFunction
      name: create-kubeconfig
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBECONFIG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:254)
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VTest_ColonHyphen
                            arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')}
                          )
                      )
                    }
                  spids: [252]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SECONDARY_KUBECONFIG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:SECONDARY_KUBECONFIG span_id:273)
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                      )
                    }
                  spids: [271]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OVERRIDE_CONTEXT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:OVERRIDE_CONTEXT span_id:280)
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                      )
                    }
                  spids: [278]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {(DQ ($ Id.VSub_DollarName '$OVERRIDE_CONTEXT'))}
                              right: {(DQ )}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:300)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CONTEXT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OVERRIDE_CONTEXT')}
                          spids: [304]
                        )
                      ]
                    )
                  ]
                  spids: [286 301]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OLD_IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$IFS')}
                  spids: [316]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ (Token id:Id.Lit_Chars val:':' span_id:322))}
                  spids: [320]
                )
              ]
            )
            (command.ForEach
              iter_name: cfg
              iter_words: [{(${ Id.VSub_Name KUBECONFIG)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_e
                                          child: {(DQ (${ Id.VSub_Name cfg))}
                                        )
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:356)
                            )
                          ]
                          action: [
                            (C {(mkdir)} {(-p)} 
                              {
                                (DQ 
                                  (command_sub
                                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:366)
                                    command_list: 
                                      (command.CommandList
                                        children: [(C {(dirname)} {(DQ (${ Id.VSub_Name cfg))})]
                                      )
                                  )
                                )
                              }
                            )
                            (C {(touch)} {(DQ (${ Id.VSub_Name cfg))})
                          ]
                          spids: [341 358]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$OLD_IFS')}
                  spids: [393]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'cluster_args=') 
                (sh_array_literal
                  left: (Token id:Id.Op_LParen val:'(' span_id:401)
                  words: [
                    {
                      (DQ ('--server=') 
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:KUBE_SERVER span_id:407)
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_ColonHyphen
                              arg_word: 
                                {('https:') (Id.Lit_Slash /) (Id.Lit_Slash /) 
                                  (${ Id.VSub_Name KUBE_MASTER_IP)
                                }
                            )
                        )
                      )
                    }
                  ]
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:CA_CERT span_id:430)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:436)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cluster_args)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:442)
                                words: [{(DQ ('--insecure-skip-tls-verify=true'))}]
                              )
                            }
                          spids: [441]
                        )
                      ]
                    )
                  ]
                  spids: [422 438]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:cluster_args)
                      op: assign_op.PlusEqual
                      rhs: 
                        {
                          (sh_array_literal
                            left: (Token id:Id.Op_LParen val:'(' span_id:453)
                            words: [
                              {(DQ ('--certificate-authority=') (${ Id.VSub_Name CA_CERT))}
                              {(DQ ('--embed-certs=true'))}
                            ]
                          )
                        }
                      spids: [452]
                    )
                  ]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'user_args=') 
                (sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:479))
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_BEARER_TOKEN
                                              span_id: 493
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:499)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_args)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:505)
                                words: [{(DQ ('--token=') (${ Id.VSub_Name KUBE_BEARER_TOKEN))}]
                              )
                            }
                          spids: [504]
                        )
                      ]
                    )
                  ]
                  spids: [483 501]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: KUBE_USER
                                                  span_id: 529
                                                )
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                    )
                                )
                              right: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: KUBE_PASSWORD
                                                  span_id: 542
                                                )
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:548)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_args)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:554)
                                words: [
                                  {(DQ ('--username=') (${ Id.VSub_Name KUBE_USER))}
                                  {(DQ ('--password=') (${ Id.VSub_Name KUBE_PASSWORD))}
                                ]
                              )
                            }
                          spids: [553]
                        )
                      ]
                    )
                  ]
                  spids: [519 550]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: KUBE_CERT
                                                  span_id: 589
                                                )
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                    )
                                )
                              right: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:KUBE_KEY span_id:602)
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                    )
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:608)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:user_args)
                          op: assign_op.PlusEqual
                          rhs: 
                            {
                              (sh_array_literal
                                left: (Token id:Id.Op_LParen val:'(' span_id:614)
                                words: [
                                  {(DQ ('--client-certificate=') (${ Id.VSub_Name KUBE_CERT))}
                                  {(DQ ('--client-key=') (${ Id.VSub_Name KUBE_KEY))}
                                  {(DQ ('--embed-certs=true'))}
                                ]
                              )
                            }
                          spids: [613]
                        )
                      ]
                    )
                  ]
                  spids: [579 610]
                )
              ]
            )
            (command.Simple
              words: [
                {(DQ (${ Id.VSub_Name kubectl))}
                {(config)}
                {(set-cluster)}
                {(DQ (${ Id.VSub_Name CONTEXT))}
                {
                  (DQ 
                    (braced_var_sub
                      token: (Token id:Id.VSub_Name val:cluster_args span_id:670)
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              more_env: [
                (env_pair
                  name: KUBECONFIG
                  val: {(DQ (${ Id.VSub_Name KUBECONFIG))}
                  spids: [645]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:user_args span_id:686)
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:695)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(DQ (${ Id.VSub_Name kubectl))}
                        {(config)}
                        {(set-credentials)}
                        {(DQ (${ Id.VSub_Name CONTEXT))}
                        {
                          (DQ 
                            (braced_var_sub
                              token: (Token id:Id.VSub_Name val:user_args span_id:725)
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      more_env: [
                        (env_pair
                          name: KUBECONFIG
                          val: {(DQ (${ Id.VSub_Name KUBECONFIG))}
                          spids: [700]
                        )
                      ]
                    )
                  ]
                  spids: [678 697]
                )
              ]
            )
            (command.Simple
              words: [
                {(DQ (${ Id.VSub_Name kubectl))}
                {(config)}
                {(set-context)}
                {(DQ (${ Id.VSub_Name CONTEXT))}
                {(--cluster) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name CONTEXT))}
                {(--user) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name CONTEXT))}
              ]
              more_env: [
                (env_pair
                  name: KUBECONFIG
                  val: {(DQ (${ Id.VSub_Name KUBECONFIG))}
                  spids: [736]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {(DQ (${ Id.VSub_Name SECONDARY_KUBECONFIG))}
                              right: {(DQ (true))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:794)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(DQ (${ Id.VSub_Name kubectl))}
                        {(config)}
                        {(use-context)}
                        {(DQ (${ Id.VSub_Name CONTEXT))}
                        {(--cluster) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name CONTEXT))}
                      ]
                      more_env: [
                        (env_pair
                          name: KUBECONFIG
                          val: {(DQ (${ Id.VSub_Name KUBECONFIG))}
                          spids: [798]
                        )
                      ]
                    )
                  ]
                  spids: [777 795]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: KUBE_BEARER_TOKEN
                                                  span_id: 856
                                                )
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                    )
                                )
                              right: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: 
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  token: 
                                                    (Token
                                                      id: Id.VSub_Name
                                                      val: KUBE_USER
                                                      span_id: 869
                                                    )
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op_id: Id.VTest_ColonHyphen
                                                      arg_word: (word.Empty)
                                                    )
                                                )
                                              )
                                            }
                                        )
                                    )
                                  right: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: 
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  token: 
                                                    (Token
                                                      id: Id.VSub_Name
                                                      val: KUBE_PASSWORD
                                                      span_id: 882
                                                    )
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op_id: Id.VTest_ColonHyphen
                                                      arg_word: (word.Empty)
                                                    )
                                                )
                                              )
                                            }
                                        )
                                    )
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:888)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(DQ (${ Id.VSub_Name kubectl))}
                        {(config)}
                        {(set-credentials)}
                        {(DQ (${ Id.VSub_Name CONTEXT) (-basic-auth))}
                        {(DQ ('--username=') (${ Id.VSub_Name KUBE_USER))}
                        {(DQ ('--password=') (${ Id.VSub_Name KUBE_PASSWORD))}
                      ]
                      more_env: [
                        (env_pair
                          name: KUBECONFIG
                          val: {(DQ (${ Id.VSub_Name KUBECONFIG))}
                          spids: [893]
                        )
                      ]
                    )
                  ]
                  spids: [846 890]
                )
              ]
            )
            (C {(echo)} 
              {
                (DQ ('Wrote config for ') (${ Id.VSub_Name CONTEXT) (' to ') 
                  (${ Id.VSub_Name KUBECONFIG)
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: clear-kubeconfig
      body: 
        (command.BraceGroup
          children: [
            (C {(export)} 
              {(Id.Lit_VarLike 'KUBECONFIG=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:983)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')}
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OVERRIDE_CONTEXT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: (Token id:Id.VSub_Name val:OVERRIDE_CONTEXT span_id:991)
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                      )
                    }
                  spids: [989]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {(DQ ($ Id.VSub_DollarName '$OVERRIDE_CONTEXT'))}
                              right: {(DQ )}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1011)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CONTEXT)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OVERRIDE_CONTEXT')}
                          spids: [1015]
                        )
                      ]
                    )
                  ]
                  spids: [997 1012]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))}
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'cc=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1041)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(view)} {(-o)} 
                          {(Id.Lit_VarLike 'jsonpath=') 
                            (SQ (Token id:Id.Lit_Chars val:'{.current-context}' span_id:1056))
                          }
                        )
                      ]
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(DQ (${ Id.VSub_Name cc))}
                              right: {(DQ (${ Id.VSub_Name CONTEXT))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1080)
                    )
                  ]
                  action: [
                    (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} {(current-context)})
                  ]
                  spids: [1061 1082]
                )
              ]
            )
            (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} 
              {(DQ (clusters.) (${ Id.VSub_Name CONTEXT))}
            )
            (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} 
              {(DQ (users.) (${ Id.VSub_Name CONTEXT))}
            )
            (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} 
              {(DQ (users.) (${ Id.VSub_Name CONTEXT) (-basic-auth))}
            )
            (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(unset)} 
              {(DQ (contexts.) (${ Id.VSub_Name CONTEXT))}
            )
            (C {(echo)} 
              {
                (DQ ('Cleared config for ') (${ Id.VSub_Name CONTEXT) (' from ') 
                  (${ Id.VSub_Name KUBECONFIG)
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: create-kubeconfig-for-federation
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:FEDERATION span_id:1212)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                              right: {(DQ (true))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1224)
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('creating kubeconfig for federation secret'))})
                    (C {(local)} 
                      {(Id.Lit_VarLike 'kubectl=') 
                        (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))
                      }
                    )
                    (C {(local)} 
                      {(Id.Lit_VarLike 'cc=') 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1250)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(DQ (${ Id.VSub_Name kubectl))} {(config)} {(view)} {(-o)} 
                                  {(Id.Lit_VarLike 'jsonpath=') 
                                    (SQ (Token id:Id.Lit_Chars val:'{.current-context}' span_id:1265))
                                  }
                                )
                              ]
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBECONFIG_DIR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1271)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(dirname)} 
                                        {
                                          (braced_var_sub
                                            token: 
                                              (Token
                                                id: Id.VSub_Name
                                                val: KUBECONFIG
                                                span_id: 1275
                                              )
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op_id: Id.VTest_ColonHyphen
                                                arg_word: 
                                                  {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')}
                                              )
                                          )
                                        }
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [1270]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBECONFIG_PATH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name KUBECONFIG_DIR) (/federation/kubernetes-apiserver/) 
                                (${ Id.VSub_Name cc)
                              )
                            }
                          spids: [1282]
                        )
                      ]
                    )
                    (C {(mkdir)} {(-p)} {(DQ (${ Id.VSub_Name KUBECONFIG_PATH))})
                    (command.Simple
                      words: [
                        {(DQ (${ Id.VSub_Name kubectl))}
                        {(config)}
                        {(view)}
                        {(--minify)}
                        {(--flatten)}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:1319)
                          fd: -1
                          arg_word: {(DQ (${ Id.VSub_Name KUBECONFIG_PATH) (/kubeconfig))}
                        )
                      ]
                    )
                  ]
                  spids: [1206 1226]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: tear_down_alive_resources
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} 
              {(Id.Lit_VarLike 'kubectl=') (DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))}
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(deployments)} {(--all)})
                (C {(true)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(rc)} {(--all)}) (C {(true)})]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(pods)} {(--all)}) (C {(true)})]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(svc)} {(--all)}) (C {(true)})]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {(DQ (${ Id.VSub_Name kubectl))} {(delete)} {(pvc)} {(--all)}) (C {(true)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: get-kubeconfig-basicauth
      body: 
        (command.BraceGroup
          children: [
            (C {(export)} 
              {(Id.Lit_VarLike 'KUBECONFIG=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:1487)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')}
                    )
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'cc=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1497)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} 
                          {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.current-context}'))}
                        )
                      ]
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_CONTEXT
                                              span_id: 1528
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1534)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))}
                          spids: [1539]
                        )
                      ]
                    )
                  ]
                  spids: [1518 1536]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'user=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1553)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} 
                          {(-o)} 
                          {(Id.Lit_VarLike 'jsonpath=') 
                            (DQ ('{.contexts[?(@.name == ') 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1570)
                              ) (${ Id.VSub_Name cc) 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1574)
                              ) (')].context.user}')
                            )
                          }
                        )
                      ]
                    )
                )
              }
            )
            (C {(get-kubeconfig-user-basicauth)} {(DQ (${ Id.VSub_Name user))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalOr
                              left: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:KUBE_USER span_id:1598)
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_PASSWORD
                                              span_id: 1609
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1615)
                    )
                  ]
                  action: [
                    (C {(get-kubeconfig-user-basicauth)} {(DQ (${ Id.VSub_Name user) (-basic-auth))})
                  ]
                  spids: [1590 1617]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: get-kubeconfig-user-basicauth
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_USER)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1695)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} 
                                {(view)} {(-o)} 
                                {(Id.Lit_VarLike 'jsonpath=') 
                                  (DQ ('{.users[?(@.name == ') 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1712)
                                    ) ($ Id.VSub_Number '$1') 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1714)
                                    ) (')].user.username}')
                                  )
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [1694]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_PASSWORD)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1721)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} 
                                {(view)} {(-o)} 
                                {(Id.Lit_VarLike 'jsonpath=') 
                                  (DQ ('{.users[?(@.name == ') 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1738)
                                    ) ($ Id.VSub_Number '$1') 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1740)
                                    ) (')].user.password}')
                                  )
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [1720]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: gen-kube-basicauth
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_USER)
                  op: assign_op.Equal
                  rhs: {(admin)}
                  spids: [1770]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_PASSWORD)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1775)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(python)} {(-c)} 
                                {
                                  (SQ 
                                    (Token
                                      id: Id.Lit_Chars
                                      val: 
'import string,random; print("".join(random.SystemRandom().choice(string.ascii_letters + string.digits) for _ in range(16)))'
                                      span_id: 1781
                                    )
                                  )
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [1774]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: get-kubeconfig-bearertoken
      body: 
        (command.BraceGroup
          children: [
            (C {(export)} 
              {(Id.Lit_VarLike 'KUBECONFIG=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:1831)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')}
                    )
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'cc=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1841)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} 
                          {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.current-context}'))}
                        )
                      ]
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_CONTEXT
                                              span_id: 1872
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1878)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))}
                          spids: [1883]
                        )
                      ]
                    )
                  ]
                  spids: [1862 1880]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'user=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1897)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} 
                          {(-o)} 
                          {(Id.Lit_VarLike 'jsonpath=') 
                            (DQ ('{.contexts[?(@.name == ') 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1914)
                              ) (${ Id.VSub_Name cc) 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1918)
                              ) (')].context.user}')
                            )
                          }
                        )
                      ]
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_BEARER_TOKEN)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1925)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} 
                                {(view)} {(-o)} 
                                {(Id.Lit_VarLike 'jsonpath=') 
                                  (DQ ('{.users[?(@.name == ') 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1942)
                                    ) (${ Id.VSub_Name user) 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1946)
                                    ) (')].user.token}')
                                  )
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [1924]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: gen-kube-bearertoken
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_BEARER_TOKEN)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1976)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    words: [
                                      {(dd)}
                                      {(Id.Lit_VarLike 'if=') (/dev/urandom)}
                                      {(Id.Lit_VarLike 'bs=') (128)}
                                      {(Id.Lit_VarLike 'count=') (1)}
                                    ]
                                    redirects: [
                                      (redir.Redir
                                        op: (Token id:Id.Redir_Great val:'2>' span_id:1988)
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                      )
                                    ]
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} {(DQ ('=+/'))})
                                  (command.Simple
                                    words: [
                                      {(dd)}
                                      {(Id.Lit_VarLike 'bs=') (32)}
                                      {(Id.Lit_VarLike 'count=') (1)}
                                    ]
                                    redirects: [
                                      (redir.Redir
                                        op: (Token id:Id.Redir_Great val:'2>' span_id:2015)
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                      )
                                    ]
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [1975]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: gen-uid
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_UID)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2048)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(python)} {(-c)} 
                                {
                                  (SQ 
                                    (Token
                                      id: Id.Lit_Chars
                                      val: 'import uuid; print(uuid.uuid1().fields[0])'
                                      span_id: 2054
                                    )
                                  )
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [2047]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: load-or-gen-kube-basicauth
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_CONTEXT
                                              span_id: 2081
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2087)
                    )
                  ]
                  action: [(C {(get-kubeconfig-basicauth)})]
                  spids: [2071 2089]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalOr
                              left: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:KUBE_USER span_id:2107)
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_PASSWORD
                                              span_id: 2118
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2124)
                    )
                  ]
                  action: [(C {(gen-kube-basicauth)})]
                  spids: [2099 2126]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {(DQ (${ Id.VSub_Name KUBE_USER))}
                                  right: 
                                    {(Id.Lit_Other '^') (Id.Lit_Other '[') (-) (Id.Lit_Other .) (_) 
                                      (Id.Lit_Other '@') (a-zA-Z0-9) (Id.Lit_Other ']') (Id.Lit_Other '+') (Id.Lit_Other '$')
                                    }
                                )
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2166)
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Bad KUBE_USER string.'))})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:2178)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [2140 2168]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {(DQ (${ Id.VSub_Name KUBE_PASSWORD))}
                                  right: 
                                    {(Id.Lit_Other '^') (Id.Lit_Other '[') (-) (Id.Lit_Other .) (_) 
                                      (Id.Lit_Other '@') (Id.Lit_Other '#') (Id.Lit_Other '%') (/a-zA-Z0-9) (Id.Lit_Other ']') (Id.Lit_Other '+') 
                                      (Id.Lit_Other '$')
                                    }
                                )
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2214)
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Bad KUBE_PASSWORD string.'))})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:2226)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [2186 2216]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: load-or-gen-kube-bearertoken
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_CONTEXT
                                              span_id: 2255
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2261)
                    )
                  ]
                  action: [(C {(get-kubeconfig-bearertoken)})]
                  spids: [2245 2263]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: 
                                        (Token
                                          id: Id.VSub_Name
                                          val: KUBE_BEARER_TOKEN
                                          span_id: 2280
                                        )
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2286)
                    )
                  ]
                  action: [(C {(gen-kube-bearertoken)})]
                  spids: [2272 2288]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: detect-master-from-kubeconfig
      body: 
        (command.BraceGroup
          children: [
            (C {(export)} 
              {(Id.Lit_VarLike 'KUBECONFIG=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:KUBECONFIG span_id:2345)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_DollarName '$DEFAULT_KUBECONFIG')}
                    )
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'cc=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2355)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} 
                          {(-o)} {(Id.Lit_VarLike 'jsonpath=') (DQ ('{.current-context}'))}
                        )
                      ]
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBE_CONTEXT
                                              span_id: 2386
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2392)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cc)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name KUBE_CONTEXT))}
                          spids: [2397]
                        )
                      ]
                    )
                  ]
                  spids: [2376 2394]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'cluster=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2411)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} {(view)} 
                          {(-o)} 
                          {(Id.Lit_VarLike 'jsonpath=') 
                            (DQ ('{.contexts[?(@.name == ') 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2428)
                              ) (${ Id.VSub_Name cc) 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2432)
                              ) (')].context.cluster}')
                            )
                          }
                        )
                      ]
                    )
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_MASTER_URL)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2439)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(config)} 
                                {(view)} {(-o)} 
                                {(Id.Lit_VarLike 'jsonpath=') 
                                  (DQ ('{.clusters[?(@.name == ') 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2456)
                                    ) (${ Id.VSub_Name cluster) 
                                    (word_part.EscapedLiteral
                                      token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:2460)
                                    ) (')].cluster.server}')
                                  )
                                }
                              )
                            ]
                          )
                      )
                    }
                  spids: [2438]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: set_binary_version
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_EqualTilde
                              left: {(DQ (${ Id.VSub_Number 1))}
                              right: {(DQ (/))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2527)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(read)} {(-a)} {(path)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_TLess val:'<<<' span_id:2543)
                          fd: -1
                          arg_word: {(DQ (${ Id.VSub_Number 1))}
                        )
                      ]
                      more_env: [
                        (env_pair
                          name: IFS
                          val: {(SQ (Token id:Id.Lit_Chars val:/ span_id:2534))}
                          spids: [2532]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:path span_id:2558)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                                )
                                            )
                                          )
                                        }
                                      right: {(DQ (release))}
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:2572)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:KUBE_VERSION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: 
                                          (Token
                                            id: Id.Left_DollarParen
                                            val: '$('
                                            span_id: 2578
                                          )
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(gsutil)} {(cat)} 
                                                {
                                                  (DQ ('gs://kubernetes-release/') 
                                                    (${ Id.VSub_Number 1) (.txt)
                                                  )
                                                }
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [2577]
                                )
                              ]
                            )
                          ]
                          spids: [2552 2574]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:KUBE_VERSION)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2597)
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (C {(gsutil)} {(cat)} 
                                            {
                                              (DQ ('gs://kubernetes-release-dev/') 
                                                (${ Id.VSub_Number 1) (.txt)
                                              )
                                            }
                                          )
                                        ]
                                      )
                                  )
                                }
                              spids: [2596]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [2510 2529]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:KUBE_VERSION)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Number 1)}
                      spids: [2618]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: tars_from_version
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'sha1sum=') (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [{(which)} {(sha1sum)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:2693)
                              fd: -1
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:2696)
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2698)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sha1sum)
                          op: assign_op.Equal
                          rhs: {(DQ (sha1sum))}
                          spids: [2703]
                        )
                      ]
                    )
                  ]
                  spids: [2687 2700]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:sha1sum)
                      op: assign_op.Equal
                      rhs: {(DQ ('shasum -a1'))}
                      spids: [2712]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:KUBE_VERSION span_id:2730)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2736)
                    )
                  ]
                  action: [(C {(find-release-tars)}) (C {(upload-server-tars)})]
                  spids: [2722 2738]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_EqualTilde
                              left: {(${ Id.VSub_Name KUBE_VERSION)}
                              right: {(${ Id.VSub_Name KUBE_RELEASE_VERSION_REGEX)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2762)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR_URL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ('https://storage.googleapis.com/kubernetes-release/release/') 
                                (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-server-linux-amd64.tar.gz)
                              )
                            }
                          spids: [2767]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SALT_TAR_URL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ('https://storage.googleapis.com/kubernetes-release/release/') 
                                (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-salt.tar.gz)
                              )
                            }
                          spids: [2777]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_URL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: SERVER_BINARY_TAR_URL
                                      span_id: 2794
                                    )
                                  suffix_op: 
                                    (suffix_op.PatSub
                                      pat: {(server-linux-amd64)}
                                      replace: {(manifests)}
                                      replace_mode: Id.Undefined_Tok
                                    )
                                )
                              )
                            }
                          spids: [2791]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_HASH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2804)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {(curl)} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL)} 
                                            {(--silent)} {(--show-error)}
                                          )
                                          (C {(${ Id.VSub_Name sha1sum)})
                                          (C {(awk)} 
                                            {
                                              (SQ 
                                                (Token
                                                  id: Id.Lit_Chars
                                                  val: '{print $1}'
                                                  span_id: 2826
                                                )
                                              )
                                            }
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [2803]
                        )
                      ]
                    )
                  ]
                  spids: [2747 2764]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_EqualTilde
                              left: {(${ Id.VSub_Name KUBE_VERSION)}
                              right: {(${ Id.VSub_Name KUBE_CI_VERSION_REGEX)}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2846)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR_URL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ('https://storage.googleapis.com/kubernetes-release-dev/ci/') 
                                (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-server-linux-amd64.tar.gz)
                              )
                            }
                          spids: [2851]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SALT_TAR_URL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ('https://storage.googleapis.com/kubernetes-release-dev/ci/') 
                                (${ Id.VSub_Name KUBE_VERSION) (/kubernetes-salt.tar.gz)
                              )
                            }
                          spids: [2861]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_URL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: SERVER_BINARY_TAR_URL
                                      span_id: 2878
                                    )
                                  suffix_op: 
                                    (suffix_op.PatSub
                                      pat: {(server-linux-amd64)}
                                      replace: {(manifests)}
                                      replace_mode: Id.Undefined_Tok
                                    )
                                )
                              )
                            }
                          spids: [2875]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR_HASH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:2888)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {(curl)} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL)} 
                                            {(--silent)} {(--show-error)}
                                          )
                                          (C {(${ Id.VSub_Name sha1sum)})
                                          (C {(awk)} 
                                            {
                                              (SQ 
                                                (Token
                                                  id: Id.Lit_Chars
                                                  val: '{print $1}'
                                                  span_id: 2910
                                                )
                                              )
                                            }
                                          )
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [2887]
                        )
                      ]
                    )
                  ]
                  spids: [2831 2848]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{(echo)} {(DQ ("Version doesn't match regexp"))}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:2924)
                      fd: -1
                      arg_word: {(2)}
                    )
                  ]
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:2928)
                  arg_word: {(1)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR_HASH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: 
                                          (Token
                                            id: Id.Left_DollarParen
                                            val: '$('
                                            span_id: 2941
                                          )
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(curl)} {(-Ss)} {(--fail)} 
                                                {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL) (.sha1))}
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [2940]
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2955)
                    )
                  ]
                  action: [(C {(echo)} {(DQ ('Failure trying to curl release .sha1'))})]
                  spids: [2936 2957]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SALT_TAR_HASH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: 
                                          (Token
                                            id: Id.Left_DollarParen
                                            val: '$('
                                            span_id: 2975
                                          )
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (C {(curl)} {(-Ss)} {(--fail)} 
                                                {(DQ (${ Id.VSub_Name SALT_TAR_URL) (.sha1))}
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [2974]
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:2989)
                    )
                  ]
                  action: [(C {(echo)} {(DQ ('Failure trying to curl Salt tar .sha1'))})]
                  spids: [2970 2991]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [
                                {(curl)}
                                {(-Ss)}
                                {(--head)}
                                {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3021)
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3023)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {(DQ ("Can't find release at ") (${ Id.VSub_Name SERVER_BINARY_TAR_URL))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3037)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:3041)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [3005 3025]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [{(curl)} {(-Ss)} {(--head)} {(DQ (${ Id.VSub_Name SALT_TAR_URL))}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3065)
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3067)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(echo)} {(DQ ("Can't find Salt tar at ") (${ Id.VSub_Name SALT_TAR_URL))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3081)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:3085)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [3049 3069]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: find-tar
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-r)} {(Id.Lit_VarLike 'tarball=') ($ Id.VSub_Number '$1')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:locations)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: (Token id:Id.Op_LParen val:'(' span_id:3137)
                        words: [
                          {(DQ (${ Id.VSub_Name KUBE_ROOT) (/server/) (${ Id.VSub_Name tarball))}
                          {
                            (DQ (${ Id.VSub_Name KUBE_ROOT) (/_output/release-tars/) 
                              (${ Id.VSub_Name tarball)
                            )
                          }
                          {
                            (DQ (${ Id.VSub_Name KUBE_ROOT) (/bazel-bin/build/release-tars/) 
                              (${ Id.VSub_Name tarball)
                            )
                          }
                        ]
                      )
                    }
                  spids: [3136]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:location)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3177)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (command.Subshell
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.AndOr
                                            ops: [Id.Op_DPipe]
                                            children: [
                                              (command.Simple
                                                words: [
                                                  {(ls)}
                                                  {(-t)}
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        token: 
                                                          (Token
                                                            id: Id.VSub_Name
                                                            val: locations
                                                            span_id: 3186
                                                          )
                                                        bracket_op: 
                                                          (bracket_op.WholeArray
                                                            op_id: Id.Lit_At
                                                          )
                                                      )
                                                    )
                                                  }
                                                ]
                                                redirects: [
                                                  (redir.Redir
                                                    op: 
                                                      (Token
                                                        id: Id.Redir_Great
                                                        val: '2>'
                                                        span_id: 3193
                                                      )
                                                    fd: 2
                                                    arg_word: {(/dev/null)}
                                                  )
                                                ]
                                              )
                                              (C {(true)})
                                            ]
                                          )
                                        ]
                                      )
                                  )
                                  (C {(head)} {(-1)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [3176]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_f
                                  child: {(DQ (${ Id.VSub_Name location))}
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3226)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(echo)} {(DQ ('!!! Cannot find ') (${ Id.VSub_Name tarball))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:3240)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:3244)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [3211 3228]
                )
              ]
            )
            (C {(echo)} {(DQ (${ Id.VSub_Name location))})
          ]
        )
    )
    (command.ShFunction
      name: find-release-tars
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SERVER_BINARY_TAR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3297)
                        command_list: 
                          (command.CommandList
                            children: [(C {(find-tar)} {(kubernetes-server-linux-amd64.tar.gz)})]
                          )
                      )
                    }
                  spids: [3296]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SALT_TAR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3305)
                        command_list: 
                          (command.CommandList
                            children: [(C {(find-tar)} {(kubernetes-salt.tar.gz)})]
                          )
                      )
                    }
                  spids: [3304]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [3317]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: MASTER_OS_DISTRIBUTION
                                                  span_id: 3326
                                                )
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                      right: {(DQ (trusty))}
                                    )
                                  right: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  token: 
                                                    (Token
                                                      id: Id.VSub_Name
                                                      val: MASTER_OS_DISTRIBUTION
                                                      span_id: 3341
                                                    )
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op_id: Id.VTest_ColonHyphen
                                                      arg_word: (word.Empty)
                                                    )
                                                )
                                              )
                                            }
                                          right: {(DQ (gci))}
                                        )
                                      right: 
                                        (bool_expr.LogicalOr
                                          left: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: MASTER_OS_DISTRIBUTION
                                                          span_id: 3356
                                                        )
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op_id: Id.VTest_ColonHyphen
                                                          arg_word: (word.Empty)
                                                        )
                                                    )
                                                  )
                                                }
                                              right: {(DQ (container-linux))}
                                            )
                                          right: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: MASTER_OS_DISTRIBUTION
                                                          span_id: 3371
                                                        )
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op_id: Id.VTest_ColonHyphen
                                                          arg_word: (word.Empty)
                                                        )
                                                    )
                                                  )
                                                }
                                              right: {(DQ (ubuntu))}
                                            )
                                        )
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: NODE_OS_DISTRIBUTION
                                                  span_id: 3392
                                                )
                                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                            )
                                          )
                                        }
                                      right: {(DQ (trusty))}
                                    )
                                  right: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (DQ 
                                                (braced_var_sub
                                                  token: 
                                                    (Token
                                                      id: Id.VSub_Name
                                                      val: NODE_OS_DISTRIBUTION
                                                      span_id: 3407
                                                    )
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op_id: Id.VTest_ColonHyphen
                                                      arg_word: (word.Empty)
                                                    )
                                                )
                                              )
                                            }
                                          right: {(DQ (gci))}
                                        )
                                      right: 
                                        (bool_expr.LogicalOr
                                          left: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: NODE_OS_DISTRIBUTION
                                                          span_id: 3422
                                                        )
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op_id: Id.VTest_ColonHyphen
                                                          arg_word: (word.Empty)
                                                        )
                                                    )
                                                  )
                                                }
                                              right: {(DQ (container-linux))}
                                            )
                                          right: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: NODE_OS_DISTRIBUTION
                                                          span_id: 3437
                                                        )
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op_id: Id.VTest_ColonHyphen
                                                          arg_word: (word.Empty)
                                                        )
                                                    )
                                                  )
                                                }
                                              right: {(DQ (ubuntu))}
                                            )
                                        )
                                    )
                                )
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3450)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_MANIFESTS_TAR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3456)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(find-tar)} {(kubernetes-manifests.tar.gz)})]
                                  )
                              )
                            }
                          spids: [3455]
                        )
                      ]
                    )
                  ]
                  spids: [3320 3452]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: find-release-version
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_GIT_VERSION)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [3495]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(DQ (${ Id.VSub_Name KUBE_ROOT) (/version))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3514)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_GIT_VERSION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3521)
                                  command_list: 
                                    (command.CommandList
                                      children: [(C {(cat)} {(${ Id.VSub_Name KUBE_ROOT) (/version)})]
                                    )
                                )
                              )
                            }
                          spids: [3519]
                        )
                      ]
                    )
                  ]
                  spids: [3500 3516]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: 
                                {
                                  (DQ (${ Id.VSub_Name KUBE_ROOT) 
                                    (/_output/release-stage/full/kubernetes/version)
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3549)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBE_GIT_VERSION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3556)
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(cat)} 
                                          {(${ Id.VSub_Name KUBE_ROOT) 
                                            (/_output/release-stage/full/kubernetes/version)
                                          }
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                          spids: [3554]
                        )
                      ]
                    )
                  ]
                  spids: [3535 3551]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: {(DQ (${ Id.VSub_Name KUBE_GIT_VERSION))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3584)
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('!!! Cannot find release version'))})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:3596)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [3571 3586]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: stage-images
      body: 
        (command.BraceGroup
          children: [
            (C {(find-release-version)})
            (C {(find-release-tars)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_IMAGE_TAG)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3624)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {(DQ ) (DQ (${ Id.VSub_Name KUBE_GIT_VERSION)) (DQ )})
                                    (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/+/-/g' span_id:3642))})
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [3622]
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'docker_wrapped_binaries=') 
                (sh_array_literal
                  left: (Token id:Id.Op_LParen val:'(' span_id:3652)
                  words: [
                    {(DQ (kube-apiserver))}
                    {(DQ (kube-controller-manager))}
                    {(DQ (kube-scheduler))}
                    {(DQ (kube-proxy))}
                  ]
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'docker_cmd=') 
                (sh_array_literal
                  left: (Token id:Id.Op_LParen val:'(' span_id:3682)
                  words: [{(DQ (docker))}]
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY))}
                              right: {(DQ (gcr.io/)) (Id.Lit_Other '*')}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:3708)
                    )
                  ]
                  action: [
                    (C {(local)} 
                      {(Id.Lit_VarLike 'docker_push_cmd=') 
                        (sh_array_literal
                          left: (Token id:Id.Op_LParen val:'(' span_id:3716)
                          words: [{(DQ (gcloud))} {(DQ (docker))}]
                        )
                      }
                    )
                  ]
                  spids: [3690 3710]
                )
              ]
              else_action: [
                (C {(local)} 
                  {(Id.Lit_VarLike 'docker_push_cmd=') 
                    (sh_array_literal
                      left: (Token id:Id.Op_LParen val:'(' span_id:3733)
                      words: [
                        {
                          (DQ 
                            (braced_var_sub
                              token: (Token id:Id.VSub_Name val:docker_cmd span_id:3736)
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                    )
                  }
                )
              ]
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'temp_dir=') 
                (DQ 
                  (command_sub
                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3753)
                    command_list: 
                      (command.CommandList
                        children: [
                          (C {(mktemp)} {(-d)} {(-t)} 
                            {(SQ (Token id:Id.Lit_Chars val:kube-server-XXXX span_id:3761))}
                          )
                        ]
                      )
                  )
                )
              }
            )
            (command.Simple
              words: [
                {(tar)}
                {(xzfv)}
                {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR))}
                {(-C)}
                {(DQ (${ Id.VSub_Name temp_dir))}
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_AndGreat val:'&>' span_id:3786)
                  fd: -1
                  arg_word: {(/dev/null)}
                )
              ]
            )
            (command.ForEach
              iter_name: binary
              iter_words: [
                {
                  (DQ 
                    (braced_var_sub
                      token: (Token id:Id.VSub_Name val:docker_wrapped_binaries span_id:3800)
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {(local)} 
                      {(Id.Lit_VarLike 'docker_tag=') 
                        (DQ 
                          (command_sub
                            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:3815)
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(cat)} 
                                    {(${ Id.VSub_Name temp_dir) (/kubernetes/server/bin/) 
                                      (${ Id.VSub_Name binary) (.docker_tag)
                                    }
                                  )
                                ]
                              )
                          )
                        )
                      }
                    )
                    (command.Sentence
                      child: 
                        (command.Subshell
                          command_list: 
                            (command.CommandList
                              children: [
                                (C 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:docker_cmd span_id:3835)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    )
                                  } {(load)} {(-i)} 
                                  {
                                    (DQ (${ Id.VSub_Name temp_dir) (/kubernetes/server/bin/) 
                                      (${ Id.VSub_Name binary) (.tar)
                                    )
                                  }
                                )
                                (command.AndOr
                                  ops: [Id.Op_DPipe]
                                  children: [
                                    (command.Simple
                                      words: [
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: docker_cmd
                                                  span_id: 3860
                                                )
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            )
                                          )
                                        }
                                        {(rmi)}
                                        {
                                          (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) (/) 
                                            (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name KUBE_IMAGE_TAG)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir.Redir
                                          op: (Token id:Id.Redir_Great val:'2>' span_id:3883)
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                        )
                                      ]
                                    )
                                    (C {(true)})
                                  ]
                                )
                                (C 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:docker_cmd span_id:3893)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    )
                                  } {(tag)} {(DQ (gcr.io/google_containers/) (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name docker_tag))} 
                                  {
                                    (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) (/) 
                                      (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name KUBE_IMAGE_TAG)
                                    )
                                  }
                                )
                                (C 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: docker_push_cmd
                                            span_id: 3930
                                          )
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    )
                                  } {(push)} 
                                  {
                                    (DQ (${ Id.VSub_Name KUBE_DOCKER_REGISTRY) (/) 
                                      (${ Id.VSub_Name binary) (':') (${ Id.VSub_Name KUBE_IMAGE_TAG)
                                    )
                                  }
                                )
                              ]
                            )
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_AndGreat val:'&>' span_id:3956)
                              fd: -1
                              arg_word: 
                                {
                                  (DQ (${ Id.VSub_Name temp_dir) (/) (${ Id.VSub_Name binary) 
                                    (-push.log)
                                  )
                                }
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Amp val:'&' span_id:3969)
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C 
                  {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') 
                    (Id.Lit_Other ':') (wait-for-jobs)
                  }
                )
                (command.BraceGroup
                  children: [
                    (C 
                      {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (log) (Id.Lit_Other ':') 
                        (Id.Lit_Other ':') (error)
                      } {(DQ ('unable to push images. See ') (${ Id.VSub_Name temp_dir) ('/*.log for more info.'))}
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:4006)
                      arg_word: {(1)}
                    )
                  ]
                )
              ]
            )
            (C {(rm)} {(-rf)} {(DQ (${ Id.VSub_Name temp_dir))})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:4026)
              arg_word: {(0)}
            )
          ]
        )
    )
    (command.ShFunction
      name: yaml-quote
      body: 
        (command.BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ ("'") 
                  (command_sub
                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4059)
                    command_list: 
                      (command.CommandList
                        children: [
                          (command.Pipeline
                            children: [
                              (C {(echo)} 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_At val:'@' span_id:4064)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                              )
                              (C {(sed)} {(-e)} {(DQ ("s/'/''/g"))})
                            ]
                            negated: F
                          )
                        ]
                      )
                  ) ("'")
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: build-runtime-config
      body: (command.BraceGroup children:[(C {(Id.Lit_Other ':')})])
    )
    (command.ShFunction
      name: write-cluster-name
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{(cat)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:4127)
                  fd: -1
                  arg_word: {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cluster-name.txt))}
                )
                (redir.HereDoc
                  op: (Token id:Id.Redir_DLess val:'<<' span_id:4135)
                  fd: -1
                  here_begin: {(EOF)}
                  here_end_span_id: 4144
                  stdin_parts: [(${ Id.VSub_Name CLUSTER_NAME) ('\n')]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: write-master-env
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: REGISTER_MASTER_KUBELET
                                              span_id: 4169
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                  right: {(DQ (true))}
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBELET_APISERVER
                                              span_id: 4186
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                        )
                                      )
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:4192)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBELET_APISERVER)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))}
                          spids: [4197]
                        )
                      ]
                    )
                  ]
                  spids: [4163 4194]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: 
                                        (Token
                                          id: Id.VSub_Name
                                          val: KUBERNETES_MASTER_NAME
                                          span_id: 4216
                                        )
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:4222)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBERNETES_MASTER_NAME)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))}
                          spids: [4227]
                        )
                      ]
                    )
                  ]
                  spids: [4208 4224]
                )
              ]
            )
            (C {(build-kube-env)} {(true)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/master-kube-env.yaml))})
            (C {(build-kube-master-certs)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/kube-master-certs.yaml))})
          ]
        )
    )
    (command.ShFunction
      name: write-node-env
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_z
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: 
                                        (Token
                                          id: Id.VSub_Name
                                          val: KUBERNETES_MASTER_NAME
                                          span_id: 4278
                                        )
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:4284)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KUBERNETES_MASTER_NAME)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name MASTER_NAME))}
                          spids: [4289]
                        )
                      ]
                    )
                  ]
                  spids: [4270 4286]
                )
              ]
            )
            (C {(build-kube-env)} {(false)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/node-kube-env.yaml))})
          ]
        )
    )
    (command.ShFunction
      name: build-kube-master-certs
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'file=') ($ Id.VSub_Number '$1')})
            (C {(rm)} {(-f)} {(${ Id.VSub_Name file)})
            (command.Simple
              words: [{(cat)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:4339)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$file')}
                )
                (redir.HereDoc
                  op: (Token id:Id.Redir_DLess val:'<<' span_id:4342)
                  fd: -1
                  here_begin: {(EOF)}
                  here_end_span_id: 4416
                  stdin_parts: [
                    ('KUBEAPISERVER_CERT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4346)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: KUBEAPISERVER_CERT_BASE64
                                      span_id: 4350
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBEAPISERVER_KEY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4356)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: KUBEAPISERVER_KEY_BASE64
                                      span_id: 4360
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('CA_KEY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4366)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:CA_KEY_BASE64 span_id:4370)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('AGGREGATOR_CA_KEY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4376)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: AGGREGATOR_CA_KEY_BASE64
                                      span_id: 4380
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('REQUESTHEADER_CA_CERT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4386)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: REQUESTHEADER_CA_CERT_BASE64
                                      span_id: 4390
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('PROXY_CLIENT_CERT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4396)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: PROXY_CLIENT_CERT_BASE64
                                      span_id: 4400
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('PROXY_CLIENT_KEY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4406)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: PROXY_CLIENT_KEY_BASE64
                                      span_id: 4410
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: build-kube-env
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'master=') ($ Id.VSub_Number '$1')})
            (C {(local)} {(Id.Lit_VarLike 'file=') ($ Id.VSub_Number '$2')})
            (C {(local)} 
              {(Id.Lit_VarLike 'server_binary_tar_url=') 
                ($ Id.VSub_DollarName '$SERVER_BINARY_TAR_URL')
              }
            )
            (C {(local)} {(Id.Lit_VarLike 'salt_tar_url=') ($ Id.VSub_DollarName '$SALT_TAR_URL')})
            (C {(local)} 
              {(Id.Lit_VarLike 'kube_manifests_tar_url=') 
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:KUBE_MANIFESTS_TAR_URL span_id:4460)
                    suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                  )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe Id.Op_DPipe Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (true))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                      right: {(DQ (container-linux))}
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (false))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                      right: {(DQ (container-linux))}
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (true))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                      right: {(DQ (ubuntu))}
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (false))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                      right: {(DQ (ubuntu))}
                                    )
                                )
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:4600)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:server_binary_tar_url)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4610)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(split_csv)} {(DQ (${ Id.VSub_Name SERVER_BINARY_TAR_URL))})
                                    ]
                                  )
                              )
                            }
                          spids: [4609]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:salt_tar_url)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4622)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(split_csv)} {(DQ (${ Id.VSub_Name SALT_TAR_URL))})]
                                  )
                              )
                            }
                          spids: [4621]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:kube_manifests_tar_url)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4634)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(split_csv)} {(DQ (${ Id.VSub_Name KUBE_MANIFESTS_TAR_URL))})
                                    ]
                                  )
                              )
                            }
                          spids: [4633]
                        )
                      ]
                    )
                  ]
                  spids: [4466 4602]
                )
              ]
            )
            (C {(build-runtime-config)})
            (C {(gen-uid)})
            (C {(rm)} {(-f)} {(${ Id.VSub_Name file)})
            (command.Simple
              words: [{(cat)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:4667)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$file')}
                )
                (redir.HereDoc
                  op: (Token id:Id.Redir_DLess val:'<<' span_id:4670)
                  fd: -1
                  here_begin: {(EOF)}
                  here_end_span_id: 5434
                  stdin_parts: [
                    ('CLUSTER_NAME: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4674)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name CLUSTER_NAME)})]
                        )
                    )
                    ('\n')
                    ('ENV_TIMESTAMP: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4683)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4686)
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(date)} {(-u)} 
                                          {(Id.Lit_Other '+') (Id.Lit_Other '%') (Y-) 
                                            (Id.Lit_Other '%') (m-) (Id.Lit_Other '%') (dT) (Id.Lit_Other '%') (T) (Id.Lit_Other '%') (z)
                                          }
                                        )
                                      ]
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('INSTANCE_PREFIX: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4706)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name INSTANCE_PREFIX)})]
                        )
                    )
                    ('\n')
                    ('NODE_INSTANCE_PREFIX: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4715)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name NODE_INSTANCE_PREFIX)})]
                        )
                    )
                    ('\n')
                    ('NODE_TAGS: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4724)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:NODE_TAGS span_id:4728)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NODE_NETWORK: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4734)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:NETWORK span_id:4738)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NODE_SUBNETWORK: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4744)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:SUBNETWORK span_id:4748)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('CLUSTER_IP_RANGE: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4754)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:CLUSTER_IP_RANGE span_id:4758)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(10.244.0.0) (Id.Lit_Slash /) (16)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('SERVER_BINARY_TAR_URL: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4767)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name server_binary_tar_url)})]
                        )
                    )
                    ('\n')
                    ('SERVER_BINARY_TAR_HASH: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4776)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name SERVER_BINARY_TAR_HASH)})]
                        )
                    )
                    ('\n')
                    ('PROJECT_ID: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4785)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name PROJECT)})]
                        )
                    )
                    ('\n')
                    ('NETWORK_PROJECT_ID: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4794)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name NETWORK_PROJECT)})]
                        )
                    )
                    ('\n')
                    ('SALT_TAR_URL: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4803)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name salt_tar_url)})]
                        )
                    )
                    ('\n')
                    ('SALT_TAR_HASH: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4812)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name SALT_TAR_HASH)})]
                        )
                    )
                    ('\n')
                    ('SERVICE_CLUSTER_IP_RANGE: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4821)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name SERVICE_CLUSTER_IP_RANGE)})]
                        )
                    )
                    ('\n')
                    ('KUBERNETES_MASTER_NAME: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4830)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBERNETES_MASTER_NAME)})]
                        )
                    )
                    ('\n')
                    ('ALLOCATE_NODE_CIDRS: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4839)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ALLOCATE_NODE_CIDRS span_id:4843)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_CLUSTER_MONITORING: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4850)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_CLUSTER_MONITORING
                                      span_id: 4854
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(none)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_METRICS_SERVER: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4861)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_METRICS_SERVER
                                      span_id: 4865
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('DOCKER_REGISTRY_MIRROR_URL: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4872)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: DOCKER_REGISTRY_MIRROR_URL
                                      span_id: 4876
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_L7_LOADBALANCING: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4882)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_L7_LOADBALANCING
                                      span_id: 4886
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(none)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_CLUSTER_LOGGING: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4893)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_CLUSTER_LOGGING
                                      span_id: 4897
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_CLUSTER_UI: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4904)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ENABLE_CLUSTER_UI span_id:4908)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_NODE_PROBLEM_DETECTOR: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4915)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_NODE_PROBLEM_DETECTOR
                                      span_id: 4919
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(none)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NODE_PROBLEM_DETECTOR_VERSION: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4926)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: NODE_PROBLEM_DETECTOR_VERSION
                                      span_id: 4930
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NODE_PROBLEM_DETECTOR_TAR_HASH: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4936)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: NODE_PROBLEM_DETECTOR_TAR_HASH
                                      span_id: 4940
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_NODE_LOGGING: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4946)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ENABLE_NODE_LOGGING span_id:4950)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_RESCHEDULER: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4957)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ENABLE_RESCHEDULER span_id:4961)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('LOGGING_DESTINATION: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4968)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:LOGGING_DESTINATION span_id:4972)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ELASTICSEARCH_LOGGING_REPLICAS: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4978)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ELASTICSEARCH_LOGGING_REPLICAS
                                      span_id: 4982
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_CLUSTER_DNS: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4988)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ENABLE_CLUSTER_DNS span_id:4992)
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_CLUSTER_REGISTRY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:4999)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_CLUSTER_REGISTRY
                                      span_id: 5003
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('CLUSTER_REGISTRY_DISK: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5010)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: CLUSTER_REGISTRY_DISK
                                      span_id: 5014
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('CLUSTER_REGISTRY_DISK_SIZE: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5020)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: CLUSTER_REGISTRY_DISK_SIZE
                                      span_id: 5024
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('DNS_SERVER_IP: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5030)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:DNS_SERVER_IP span_id:5034)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('DNS_DOMAIN: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5040)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:DNS_DOMAIN span_id:5044)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_DNS_HORIZONTAL_AUTOSCALER: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5050)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_DNS_HORIZONTAL_AUTOSCALER
                                      span_id: 5054
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBELET_TOKEN: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5061)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBELET_TOKEN span_id:5065)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBE_PROXY_DAEMONSET: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5071)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: KUBE_PROXY_DAEMONSET
                                      span_id: 5075
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBE_PROXY_TOKEN: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5082)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBE_PROXY_TOKEN span_id:5086)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NODE_PROBLEM_DETECTOR_TOKEN: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5092)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: NODE_PROBLEM_DETECTOR_TOKEN
                                      span_id: 5096
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ADMISSION_CONTROL: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5102)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ADMISSION_CONTROL span_id:5106)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('MASTER_IP_RANGE: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5112)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name MASTER_IP_RANGE)})]
                        )
                    )
                    ('\n')
                    ('RUNTIME_CONFIG: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5121)
                      command_list: 
                        (command.CommandList
                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name RUNTIME_CONFIG)})]
                        )
                    )
                    ('\n')
                    ('CA_CERT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5130)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:CA_CERT_BASE64 span_id:5134)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBELET_CERT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5140)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBELET_CERT_BASE64 span_id:5144)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBELET_KEY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5150)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBELET_KEY_BASE64 span_id:5154)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NETWORK_PROVIDER: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5160)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:NETWORK_PROVIDER span_id:5164)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NETWORK_POLICY_PROVIDER: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5170)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: NETWORK_POLICY_PROVIDER
                                      span_id: 5174
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('PREPULL_E2E_IMAGES: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5180)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:PREPULL_E2E_IMAGES span_id:5184)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('HAIRPIN_MODE: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5190)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:HAIRPIN_MODE span_id:5194)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('SOFTLOCKUP_PANIC: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5200)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:SOFTLOCKUP_PANIC span_id:5204)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('OPENCONTRAIL_TAG: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5210)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:OPENCONTRAIL_TAG span_id:5214)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('OPENCONTRAIL_KUBERNETES_TAG: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5220)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: OPENCONTRAIL_KUBERNETES_TAG
                                      span_id: 5224
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('OPENCONTRAIL_PUBLIC_SUBNET: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5230)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: OPENCONTRAIL_PUBLIC_SUBNET
                                      span_id: 5234
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('E2E_STORAGE_TEST_ENVIRONMENT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5240)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: E2E_STORAGE_TEST_ENVIRONMENT
                                      span_id: 5244
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBE_IMAGE_TAG: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5250)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBE_IMAGE_TAG span_id:5254)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBE_DOCKER_REGISTRY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5260)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: KUBE_DOCKER_REGISTRY
                                      span_id: 5264
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBE_ADDON_REGISTRY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5270)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBE_ADDON_REGISTRY span_id:5274)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('MULTIZONE: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5280)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:MULTIZONE span_id:5284)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('NON_MASQUERADE_CIDR: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5290)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:NON_MASQUERADE_CIDR span_id:5294)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('KUBE_UID: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5300)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:KUBE_UID span_id:5304)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_DEFAULT_STORAGE_CLASS: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5310)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_DEFAULT_STORAGE_CLASS
                                      span_id: 5314
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_APISERVER_BASIC_AUDIT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5320)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_APISERVER_BASIC_AUDIT
                                      span_id: 5324
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_APISERVER_ADVANCED_AUDIT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5330)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_APISERVER_ADVANCED_AUDIT
                                      span_id: 5334
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_CACHE_MUTATION_DETECTOR: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5340)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_CACHE_MUTATION_DETECTOR
                                      span_id: 5344
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_PATCH_CONVERSION_DETECTOR: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5351)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_PATCH_CONVERSION_DETECTOR
                                      span_id: 5355
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ADVANCED_AUDIT_POLICY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5362)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ADVANCED_AUDIT_POLICY
                                      span_id: 5366
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ADVANCED_AUDIT_BACKEND: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5372)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ADVANCED_AUDIT_BACKEND
                                      span_id: 5376
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(log)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('GCE_API_ENDPOINT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5383)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:GCE_API_ENDPOINT span_id:5387)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('PROMETHEUS_TO_SD_ENDPOINT: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5393)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: PROMETHEUS_TO_SD_ENDPOINT
                                      span_id: 5397
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('PROMETHEUS_TO_SD_PREFIX: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5403)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: PROMETHEUS_TO_SD_PREFIX
                                      span_id: 5407
                                    )
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_PROMETHEUS_TO_SD: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5413)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: 
                                    (Token
                                      id: Id.VSub_Name
                                      val: ENABLE_PROMETHEUS_TO_SD
                                      span_id: 5417
                                    )
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {(false)}
                                    )
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                    ('ENABLE_POD_PRIORITY: ')
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5424)
                      command_list: 
                        (command.CommandList
                          children: [
                            (C {(yaml-quote)} 
                              {
                                (braced_var_sub
                                  token: (Token id:Id.VSub_Name val:ENABLE_POD_PRIORITY span_id:5428)
                                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                )
                              }
                            )
                          ]
                        )
                    )
                    ('\n')
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:KUBELET_PORT span_id:5444)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5450)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5457)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5460)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5473
                          stdin_parts: [
                            ('KUBELET_PORT: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5464)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBELET_PORT)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5436 5452]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: KUBE_APISERVER_REQUEST_TIMEOUT
                                    span_id: 5486
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5492)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5499)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5502)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5515
                          stdin_parts: [
                            ('KUBE_APISERVER_REQUEST_TIMEOUT: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5506)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {(${ Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT)}
                                    )
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5478 5494]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: TERMINATED_POD_GC_THRESHOLD
                                    span_id: 5528
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5534)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5541)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5544)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5557
                          stdin_parts: [
                            ('TERMINATED_POD_GC_THRESHOLD: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5548)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name TERMINATED_POD_GC_THRESHOLD)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5520 5536]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(DQ (${ Id.VSub_Name master))}
                                          right: {(DQ (true))}
                                        )
                                      right: 
                                        (bool_expr.LogicalOr
                                          left: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                              right: {(DQ (trusty))}
                                            )
                                          right: 
                                            (bool_expr.LogicalOr
                                              left: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                                  right: {(DQ (gci))}
                                                )
                                              right: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                                  right: {(DQ (container-linux))}
                                                )
                                            )
                                        )
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                      right: {(DQ (ubuntu))}
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(DQ (${ Id.VSub_Name master))}
                                          right: {(DQ (false))}
                                        )
                                      right: 
                                        (bool_expr.LogicalOr
                                          left: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                              right: {(DQ (trusty))}
                                            )
                                          right: 
                                            (bool_expr.LogicalOr
                                              left: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                                  right: {(DQ (gci))}
                                                )
                                              right: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                                  right: {(DQ (container-linux))}
                                                )
                                            )
                                        )
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobEqual
                                      left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                      right: {(DQ (ubuntu))}
                                    )
                                )
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5716)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5723)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5726)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5748
                          stdin_parts: [
                            ('KUBE_MANIFESTS_TAR_URL: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5730)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name kube_manifests_tar_url)})
                                  ]
                                )
                            )
                            ('\n')
                            ('KUBE_MANIFESTS_TAR_HASH: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5739)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name KUBE_MANIFESTS_TAR_HASH)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5562 5718]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:TEST_CLUSTER span_id:5761)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5767)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5774)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5777)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5790
                          stdin_parts: [
                            ('TEST_CLUSTER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5781)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name TEST_CLUSTER)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5753 5769]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:KUBELET_TEST_ARGS span_id:5803)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5809)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5816)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5819)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5832
                          stdin_parts: [
                            ('KUBELET_TEST_ARGS: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5823)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBELET_TEST_ARGS)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5795 5811]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: NODE_KUBELET_TEST_ARGS
                                    span_id: 5845
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5851)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5858)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5861)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5874
                          stdin_parts: [
                            ('NODE_KUBELET_TEST_ARGS: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5865)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name NODE_KUBELET_TEST_ARGS)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5837 5853]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: MASTER_KUBELET_TEST_ARGS
                                    span_id: 5887
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5893)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5900)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5903)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5916
                          stdin_parts: [
                            ('MASTER_KUBELET_TEST_ARGS: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5907)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name MASTER_KUBELET_TEST_ARGS)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5879 5895]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: KUBELET_TEST_LOG_LEVEL
                                    span_id: 5929
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5935)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5942)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5945)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 5958
                          stdin_parts: [
                            ('KUBELET_TEST_LOG_LEVEL: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5949)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name KUBELET_TEST_LOG_LEVEL)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5921 5937]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:DOCKER_TEST_LOG_LEVEL span_id:5971)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:5977)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:5984)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:5987)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6000
                          stdin_parts: [
                            ('DOCKER_TEST_LOG_LEVEL: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:5991)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_TEST_LOG_LEVEL)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [5963 5979]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:DOCKER_LOG_DRIVER span_id:6013)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6019)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6026)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6029)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6042
                          stdin_parts: [
                            ('DOCKER_LOG_DRIVER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6033)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_LOG_DRIVER)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6005 6021]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:DOCKER_LOG_MAX_SIZE span_id:6055)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6061)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6068)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6071)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6084
                          stdin_parts: [
                            ('DOCKER_LOG_MAX_SIZE: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6075)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_LOG_MAX_SIZE)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6047 6063]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:DOCKER_LOG_MAX_FILE span_id:6097)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6103)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6110)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6113)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6126
                          stdin_parts: [
                            ('DOCKER_LOG_MAX_FILE: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6117)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name DOCKER_LOG_MAX_FILE)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6089 6105]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:ENABLE_CUSTOM_METRICS span_id:6139)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6145)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6152)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6155)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6168
                          stdin_parts: [
                            ('ENABLE_CUSTOM_METRICS: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6159)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name ENABLE_CUSTOM_METRICS)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6131 6147]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:ENABLE_METADATA_PROXY span_id:6181)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6187)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6194)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6197)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6210
                          stdin_parts: [
                            ('ENABLE_METADATA_PROXY: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6201)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name ENABLE_METADATA_PROXY)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6173 6189]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: KUBE_FIREWALL_METADATA_SERVER
                                    span_id: 6223
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6229)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6236)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6239)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6252
                          stdin_parts: [
                            ('KUBE_FIREWALL_METADATA_SERVER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6243)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name KUBE_FIREWALL_METADATA_SERVER)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6215 6231]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:FEATURE_GATES span_id:6265)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6271)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6278)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6281)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6294
                          stdin_parts: [
                            ('FEATURE_GATES: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6285)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name FEATURE_GATES)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6257 6273]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:ROTATE_CERTIFICATES span_id:6307)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6313)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6320)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6323)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6336
                          stdin_parts: [
                            ('ROTATE_CERTIFICATES: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6327)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name ROTATE_CERTIFICATES)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6299 6315]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (true))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                      right: {(DQ (gci))}
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (false))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                      right: {(DQ (gci))}
                                    )
                                )
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6405)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6412)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6415)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6441
                          stdin_parts: [
                            ('VOLUME_PLUGIN_DIR: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6419)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: VOLUME_PLUGIN_DIR
                                              span_id: 6423
                                            )
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_ColonHyphen
                                              arg_word: 
                                                {(Id.Lit_Slash /) (etc) (Id.Lit_Slash /) (srv) 
                                                  (Id.Lit_Slash /) (kubernetes) (Id.Lit_Slash /) (kubelet-plugins) (Id.Lit_Slash /) (volume) (Id.Lit_Slash /) (exec)
                                                }
                                            )
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [6341 6407]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:PROVIDER_VARS span_id:6455)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6461)
                    )
                  ]
                  action: [
                    (C {(local)} {(var_name)})
                    (C {(local)} {(var_value)})
                    (command.ForEach
                      iter_name: var_name
                      iter_words: [{(${ Id.VSub_Name PROVIDER_VARS)}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {(eval)} 
                              {
                                (DQ ('local var_value=') 
                                  (word_part.EscapedLiteral
                                    token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:6495)
                                  ) ('(yaml-quote ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:6497)) 
                                  ('{') (${ Id.VSub_Name var_name) ('})')
                                )
                              }
                            )
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:6508)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:6511)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 6523
                                  stdin_parts: [
                                    (${ Id.VSub_Name var_name)
                                    (': ')
                                    (${ Id.VSub_Name var_value)
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [6447 6463]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(DQ (${ Id.VSub_Name master))}
                              right: {(DQ (true))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:6549)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:6560)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:6563)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 6784
                          stdin_parts: [
                            ('KUBERNETES_MASTER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6567)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(DQ (true))})]
                                )
                            )
                            ('\n')
                            ('KUBE_USER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6576)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBE_USER)})]
                                )
                            )
                            ('\n')
                            ('KUBE_PASSWORD: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6585)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBE_PASSWORD)})]
                                )
                            )
                            ('\n')
                            ('KUBE_BEARER_TOKEN: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6594)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name KUBE_BEARER_TOKEN)})]
                                )
                            )
                            ('\n')
                            ('MASTER_CERT: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6603)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: MASTER_CERT_BASE64
                                              span_id: 6607
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('MASTER_KEY: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6613)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: MASTER_KEY_BASE64
                                              span_id: 6617
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('KUBECFG_CERT: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6623)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBECFG_CERT_BASE64
                                              span_id: 6627
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('KUBECFG_KEY: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6633)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBECFG_KEY_BASE64
                                              span_id: 6637
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('KUBELET_APISERVER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6643)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBELET_APISERVER
                                              span_id: 6647
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ENABLE_MANIFEST_URL: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6653)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ENABLE_MANIFEST_URL
                                              span_id: 6657
                                            )
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_ColonHyphen
                                              arg_word: {(false)}
                                            )
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('MANIFEST_URL: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6664)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: MANIFEST_URL
                                              span_id: 6668
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('MANIFEST_URL_HEADER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6674)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: MANIFEST_URL_HEADER
                                              span_id: 6678
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('NUM_NODES: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6684)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name NUM_NODES)})]
                                )
                            )
                            ('\n')
                            ('STORAGE_BACKEND: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6693)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: STORAGE_BACKEND
                                              span_id: 6697
                                            )
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_ColonHyphen
                                              arg_word: {(etcd3)}
                                            )
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('STORAGE_MEDIA_TYPE: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6704)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: STORAGE_MEDIA_TYPE
                                              span_id: 6708
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ENABLE_GARBAGE_COLLECTOR: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6714)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ENABLE_GARBAGE_COLLECTOR
                                              span_id: 6718
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ENABLE_LEGACY_ABAC: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6724)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ENABLE_LEGACY_ABAC
                                              span_id: 6728
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('MASTER_ADVERTISE_ADDRESS: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6734)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: MASTER_ADVERTISE_ADDRESS
                                              span_id: 6738
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ETCD_CA_KEY: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6744)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ETCD_CA_KEY_BASE64
                                              span_id: 6748
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ETCD_CA_CERT: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6754)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ETCD_CA_CERT_BASE64
                                              span_id: 6758
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ETCD_PEER_KEY: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6764)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ETCD_PEER_KEY_BASE64
                                              span_id: 6768
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('ETCD_PEER_CERT: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:6774)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: ETCD_PEER_CERT_BASE64
                                              span_id: 6778
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: KUBE_APISERVER_REQUEST_TIMEOUT_SEC
                                            span_id: 6802
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:6808)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:6815)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:6818)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 6831
                                  stdin_parts: [
                                    ('KUBE_APISERVER_REQUEST_TIMEOUT_SEC: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 6822
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name KUBE_APISERVER_REQUEST_TIMEOUT_SEC)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [6794 6810]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:ETCD_IMAGE span_id:6848)
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:6854)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:6861)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:6864)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 6877
                                  stdin_parts: [
                                    ('ETCD_IMAGE: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 6868
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [(C {(yaml-quote)} {(${ Id.VSub_Name ETCD_IMAGE)})]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [6840 6856]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: ETCD_DOCKER_REPOSITORY
                                            span_id: 6894
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:6900)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:6907)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:6910)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 6923
                                  stdin_parts: [
                                    ('ETCD_DOCKER_REPOSITORY: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 6914
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name ETCD_DOCKER_REPOSITORY)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [6886 6902]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:ETCD_VERSION span_id:6948)
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:6954)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:6961)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:6964)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 6977
                                  stdin_parts: [
                                    ('ETCD_VERSION: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 6968
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} {(${ Id.VSub_Name ETCD_VERSION)})
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [6940 6956]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: APISERVER_TEST_ARGS
                                            span_id: 6990
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:6996)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7003)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7006)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7019
                                  stdin_parts: [
                                    ('APISERVER_TEST_ARGS: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7010
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} {(${ Id.VSub_Name APISERVER_TEST_ARGS)})
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [6982 6998]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: APISERVER_TEST_LOG_LEVEL
                                            span_id: 7032
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7038)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7045)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7048)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7061
                                  stdin_parts: [
                                    ('APISERVER_TEST_LOG_LEVEL: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7052
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name APISERVER_TEST_LOG_LEVEL)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7024 7040]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: CONTROLLER_MANAGER_TEST_ARGS
                                            span_id: 7074
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7080)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7087)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7090)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7103
                                  stdin_parts: [
                                    ('CONTROLLER_MANAGER_TEST_ARGS: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7094
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name CONTROLLER_MANAGER_TEST_ARGS)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7066 7082]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: CONTROLLER_MANAGER_TEST_LOG_LEVEL
                                            span_id: 7116
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7122)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7129)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7132)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7145
                                  stdin_parts: [
                                    ('CONTROLLER_MANAGER_TEST_LOG_LEVEL: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7136
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name CONTROLLER_MANAGER_TEST_LOG_LEVEL)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7108 7124]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: SCHEDULER_TEST_ARGS
                                            span_id: 7158
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7164)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7171)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7174)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7187
                                  stdin_parts: [
                                    ('SCHEDULER_TEST_ARGS: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7178
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} {(${ Id.VSub_Name SCHEDULER_TEST_ARGS)})
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7150 7166]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: SCHEDULER_TEST_LOG_LEVEL
                                            span_id: 7200
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7206)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7213)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7216)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7229
                                  stdin_parts: [
                                    ('SCHEDULER_TEST_LOG_LEVEL: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7220
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name SCHEDULER_TEST_LOG_LEVEL)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7192 7208]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: INITIAL_ETCD_CLUSTER
                                            span_id: 7242
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7248)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7255)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7258)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7271
                                  stdin_parts: [
                                    ('INITIAL_ETCD_CLUSTER: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7262
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} {(${ Id.VSub_Name INITIAL_ETCD_CLUSTER)})
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7234 7250]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: INITIAL_ETCD_CLUSTER_STATE
                                            span_id: 7284
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7290)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7297)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7300)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7313
                                  stdin_parts: [
                                    ('INITIAL_ETCD_CLUSTER_STATE: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7304
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name INITIAL_ETCD_CLUSTER_STATE)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7276 7292]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: ETCD_QUORUM_READ
                                            span_id: 7326
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7332)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7339)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7342)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7355
                                  stdin_parts: [
                                    ('ETCD_QUORUM_READ: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7346
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} {(${ Id.VSub_Name ETCD_QUORUM_READ)})
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7318 7334]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {(-n)} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: 
                                          (Token
                                            id: Id.VSub_Name
                                            val: CLUSTER_SIGNING_DURATION
                                            span_id: 7368
                                          )
                                        suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                      )
                                    )
                                  } {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:7374)
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [{(cat)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:7381)
                                  fd: -1
                                  arg_word: {($ Id.VSub_DollarName '$file')}
                                )
                                (redir.HereDoc
                                  op: (Token id:Id.Redir_DLess val:'<<' span_id:7384)
                                  fd: -1
                                  here_begin: {(EOF)}
                                  here_end_span_id: 7397
                                  stdin_parts: [
                                    ('CLUSTER_SIGNING_DURATION: ')
                                    (command_sub
                                      left_token: 
                                        (Token
                                          id: Id.Left_DollarParen
                                          val: '$('
                                          span_id: 7388
                                        )
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(yaml-quote)} 
                                              {(${ Id.VSub_Name CLUSTER_SIGNING_DURATION)}
                                            )
                                          ]
                                        )
                                    )
                                    ('\n')
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [7360 7376]
                        )
                      ]
                    )
                  ]
                  spids: [6532 6551]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{(cat)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_DGreat val:'>>' span_id:7412)
                      fd: -1
                      arg_word: {($ Id.VSub_DollarName '$file')}
                    )
                    (redir.HereDoc
                      op: (Token id:Id.Redir_DLess val:'<<' span_id:7415)
                      fd: -1
                      here_begin: {(EOF)}
                      here_end_span_id: 7447
                      stdin_parts: [
                        ('KUBERNETES_MASTER: ')
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7419)
                          command_list: 
                            (command.CommandList
                              children: [(C {(yaml-quote)} {(DQ (false))})]
                            )
                        )
                        ('\n')
                        ('ZONE: ')
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7428)
                          command_list: 
                            (command.CommandList
                              children: [(C {(yaml-quote)} {(${ Id.VSub_Name ZONE)})]
                            )
                        )
                        ('\n')
                        ('EXTRA_DOCKER_OPTS: ')
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7437)
                          command_list: 
                            (command.CommandList
                              children: [
                                (C {(yaml-quote)} 
                                  {
                                    (braced_var_sub
                                      token: 
                                        (Token
                                          id: Id.VSub_Name
                                          val: EXTRA_DOCKER_OPTS
                                          span_id: 7441
                                        )
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                    )
                                  }
                                )
                              ]
                            )
                        )
                        ('\n')
                      ]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-n)} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: 
                                      (Token
                                        id: Id.VSub_Name
                                        val: KUBEPROXY_TEST_ARGS
                                        span_id: 7457
                                      )
                                    suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                  )
                                )
                              } {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:7463)
                        )
                      ]
                      action: [
                        (command.Simple
                          words: [{(cat)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_DGreat val:'>>' span_id:7470)
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$file')}
                            )
                            (redir.HereDoc
                              op: (Token id:Id.Redir_DLess val:'<<' span_id:7473)
                              fd: -1
                              here_begin: {(EOF)}
                              here_end_span_id: 7486
                              stdin_parts: [
                                ('KUBEPROXY_TEST_ARGS: ')
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7477)
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(yaml-quote)} {(${ Id.VSub_Name KUBEPROXY_TEST_ARGS)})
                                      ]
                                    )
                                )
                                ('\n')
                              ]
                            )
                          ]
                        )
                      ]
                      spids: [7449 7465]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {(-n)} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: 
                                      (Token
                                        id: Id.VSub_Name
                                        val: KUBEPROXY_TEST_LOG_LEVEL
                                        span_id: 7499
                                      )
                                    suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                  )
                                )
                              } {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:7505)
                        )
                      ]
                      action: [
                        (command.Simple
                          words: [{(cat)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_DGreat val:'>>' span_id:7512)
                              fd: -1
                              arg_word: {($ Id.VSub_DollarName '$file')}
                            )
                            (redir.HereDoc
                              op: (Token id:Id.Redir_DLess val:'<<' span_id:7515)
                              fd: -1
                              here_begin: {(EOF)}
                              here_end_span_id: 7528
                              stdin_parts: [
                                ('KUBEPROXY_TEST_LOG_LEVEL: ')
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7519)
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(yaml-quote)} {(${ Id.VSub_Name KUBEPROXY_TEST_LOG_LEVEL)})
                                      ]
                                    )
                                )
                                ('\n')
                              ]
                            )
                          ]
                        )
                      ]
                      spids: [7491 7507]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:NODE_LABELS span_id:7544)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7550)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7557)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7560)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7573
                          stdin_parts: [
                            ('NODE_LABELS: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7564)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name NODE_LABELS)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7536 7552]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:EVICTION_HARD span_id:7586)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7592)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7599)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7602)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7615
                          stdin_parts: [
                            ('EVICTION_HARD: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7606)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name EVICTION_HARD)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7578 7594]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (true))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name MASTER_OS_DISTRIBUTION))}
                                      right: {(DQ (container-linux))}
                                    )
                                )
                            )
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name master))}
                                      right: {(DQ (false))}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ (${ Id.VSub_Name NODE_OS_DISTRIBUTION))}
                                      right: {(DQ (container-linux))}
                                    )
                                )
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7685)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7696)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7699)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7744
                          stdin_parts: [
                            ('KUBERNETES_CONTAINER_RUNTIME: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7703)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: CONTAINER_RUNTIME
                                              span_id: 7707
                                            )
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_ColonHyphen
                                              arg_word: {(rkt)}
                                            )
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('RKT_VERSION: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7714)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:RKT_VERSION span_id:7718)
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('RKT_PATH: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7724)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:RKT_PATH span_id:7728)
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                            ('RKT_STAGE1_IMAGE: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7734)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} 
                                      {
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: RKT_STAGE1_IMAGE
                                              span_id: 7738
                                            )
                                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7620 7687]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(DQ (${ Id.VSub_Name ENABLE_CLUSTER_AUTOSCALER))}
                              right: {(DQ (true))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7766)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7773)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7776)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7807
                          stdin_parts: [
                            ('ENABLE_CLUSTER_AUTOSCALER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7780)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name ENABLE_CLUSTER_AUTOSCALER)})
                                  ]
                                )
                            )
                            ('\n')
                            ('AUTOSCALER_MIG_CONFIG: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7789)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name AUTOSCALER_MIG_CONFIG)})
                                  ]
                                )
                            )
                            ('\n')
                            ('AUTOSCALER_EXPANDER_CONFIG: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7798)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name AUTOSCALER_EXPANDER_CONFIG)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7749 7768]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:FEDERATION span_id:7825)
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                                    )
                                  )
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7831)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7838)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7841)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7854
                          stdin_parts: [
                            ('FEDERATION: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7845)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name FEDERATION)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7817 7833]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:FEDERATION_NAME span_id:7867)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7873)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7880)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7883)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7896
                          stdin_parts: [
                            ('FEDERATION_NAME: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7887)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name FEDERATION_NAME)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7859 7875]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:DNS_ZONE_NAME span_id:7909)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7915)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7922)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7925)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7938
                          stdin_parts: [
                            ('DNS_ZONE_NAME: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7929)
                              command_list: 
                                (command.CommandList
                                  children: [(C {(yaml-quote)} {(${ Id.VSub_Name DNS_ZONE_NAME)})]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7901 7917]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(-n)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: 
                                  (Token
                                    id: Id.VSub_Name
                                    val: SCHEDULING_ALGORITHM_PROVIDER
                                    span_id: 7951
                                  )
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                              )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:7957)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_DGreat val:'>>' span_id:7964)
                          fd: -1
                          arg_word: {($ Id.VSub_DollarName '$file')}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:7967)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 7980
                          stdin_parts: [
                            ('SCHEDULING_ALGORITHM_PROVIDER: ')
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:7971)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(yaml-quote)} {(${ Id.VSub_Name SCHEDULING_ALGORITHM_PROVIDER)})
                                  ]
                                )
                            )
                            ('\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7943 7959]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: sha1sum-file
      body: 
        (command.BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [{(which)} {(sha1sum)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:8002)
                              fd: -1
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:8005)
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:8007)
                    )
                  ]
                  action: [
                    (command.Pipeline
                      children: [
                        (C {(sha1sum)} {(DQ ($ Id.VSub_Number '$1'))})
                        (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $1 }' span_id:8023))})
                      ]
                      negated: F
                    )
                  ]
                  spids: [7996 8009]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (C {(shasum)} {(-a1)} {(DQ ($ Id.VSub_Number '$1'))})
                    (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $1 }' span_id:8043))})
                  ]
                  negated: F
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: create-certs
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-r)} {(Id.Lit_VarLike 'primary_cn=') (DQ (${ Id.VSub_Number 1))})
            (C {(local)} 
              {(Id.Lit_VarLike 'octets=') 
                (sh_array_literal
                  left: (Token id:Id.Op_LParen val:'(' span_id:8169)
                  words: [
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8170)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(echo)} {(DQ (${ Id.VSub_Name SERVICE_CLUSTER_IP_RANGE))})
                                  (C {(sed)} {(-e)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'s|/.*||' span_id:8186))} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s/\\./ /g' span_id:8192))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  ]
                )
              }
            )
            (command.DParen
              child: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_PlusEqual
                  left: 
                    (sh_lhs_expr.IndexedName
                      name: octets
                      index: (arith_expr.ArithWord w:{(Id.Lit_Digits 3)})
                    )
                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                )
            )
            (C {(local)} {(-r)} 
              {(Id.Lit_VarLike 'service_ip=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8214)
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:octets span_id:8219)
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star)
                                  )
                                )
                              }
                            )
                            (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/ /./g' span_id:8231))})
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              }
            )
            (C {(local)} {(Id.Lit_VarLike 'sans=') (DQ )})
            (command.ForEach
              iter_name: extra
              iter_words: [{($ Id.VSub_At '$@')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {(DQ (${ Id.VSub_Name extra))}
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:8268)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:sans)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name sans) ('IP:') (${ Id.VSub_Name extra) (','))
                                    }
                                  spids: [8273]
                                )
                              ]
                            )
                          ]
                          spids: [8255 8270]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:sans)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (${ Id.VSub_Name sans) ('IP:') (${ Id.VSub_Name service_ip) 
                        (
',DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.'
                        ) (${ Id.VSub_Name DNS_DOMAIN) (',DNS:') (${ Id.VSub_Name MASTER_NAME)
                      )
                    }
                  spids: [8292]
                )
              ]
            )
            (C {(echo)} {(DQ ('Generating certs for alternate-names: ') (${ Id.VSub_Name sans))})
            (C {(setup-easyrsa)})
            (command.Simple
              words: [{(generate-certs)}]
              more_env: [
                (env_pair
                  name: PRIMARY_CN
                  val: {(DQ (${ Id.VSub_Name primary_cn))}
                  spids: [8327]
                )
                (env_pair name:SANS val:{(DQ (${ Id.VSub_Name sans))} spids:[8334])
              ]
            )
            (command.Simple
              words: [{(generate-aggregator-certs)}]
              more_env: [
                (env_pair
                  name: AGGREGATOR_PRIMARY_CN
                  val: {(DQ (${ Id.VSub_Name primary_cn))}
                  spids: [8344]
                )
                (env_pair
                  name: AGGREGATOR_SANS
                  val: {(DQ (${ Id.VSub_Name sans))}
                  spids: [8351]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CERT_DIR)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/easyrsa3))}
                  spids: [8362]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CA_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8380)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/ca.key))})
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8401))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8379]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CA_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8407)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/ca.crt))})
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8428))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8406]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MASTER_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8434)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {
                                      (DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/) 
                                        (${ Id.VSub_Name MASTER_NAME) (.crt)
                                      )
                                    }
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8459))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8433]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MASTER_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8465)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {
                                      (DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/) 
                                        (${ Id.VSub_Name MASTER_NAME) (.key)
                                      )
                                    }
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8490))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8464]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBELET_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8496)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/kubelet.crt))})
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8517))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8495]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBELET_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8523)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/kubelet.key))}
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8544))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8522]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBECFG_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8550)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/kubecfg.crt))})
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8571))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8549]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBECFG_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8577)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/kubecfg.key))}
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8598))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8576]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8604)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {(DQ (${ Id.VSub_Name CERT_DIR) (/pki/issued/kube-apiserver.crt))}
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8625))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8603]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8631)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {
                                      (DQ (${ Id.VSub_Name CERT_DIR) (/pki/private/kube-apiserver.key))
                                    }
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8652))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8630]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AGGREGATOR_CERT_DIR)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/aggregator))}
                  spids: [8670]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AGGREGATOR_CA_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8680)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {(DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) (/pki/private/ca.key))}
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8701))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8679]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REQUESTHEADER_CA_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8707)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} {(DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) (/pki/ca.crt))})
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8728))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8706]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8734)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {
                                      (DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) 
                                        (/pki/issued/proxy-client.crt)
                                      )
                                    }
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8755))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8733]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8761)
                        command_list: 
                          (command.CommandList
                            children: [
                              (command.Pipeline
                                children: [
                                  (C {(cat)} 
                                    {
                                      (DQ (${ Id.VSub_Name AGGREGATOR_CERT_DIR) 
                                        (/pki/private/proxy-client.key)
                                      )
                                    }
                                  )
                                  (C {(base64)})
                                  (C {(tr)} {(-d)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'\\r\\n' span_id:8782))}
                                  )
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [8760]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: setup-easyrsa
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-r)} 
              {(Id.Lit_VarLike 'cert_create_debug_output=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8801)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(mktemp)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cert_create_debug_output.XXX))})
                      ]
                    )
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Subshell
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(Id.KW_Set set)} {(-x)})
                        (C {(cd)} {(DQ (${ Id.VSub_Name KUBE_TEMP))})
                        (C {(curl)} {(-L)} {(-O)} {(--connect-timeout)} {(20)} {(--retry)} {(6)} 
                          {(--retry-delay)} {(2)} 
                          {(https) (Id.Lit_Other ':') 
                            (//storage.googleapis.com/kubernetes-release/easy-rsa/easy-rsa.tar.gz)
                          }
                        )
                        (C {(tar)} {(xzf)} {(easy-rsa.tar.gz)})
                        (C {(mkdir)} {(easy-rsa-master/kubelet)})
                        (C {(cp)} {(-r)} {(easy-rsa-master/easyrsa3/) (Id.Lit_Star '*')} 
                          {(easy-rsa-master/kubelet)}
                        )
                        (C {(mkdir)} {(easy-rsa-master/aggregator)})
                        (C {(cp)} {(-r)} {(easy-rsa-master/easyrsa3/) (Id.Lit_Star '*')} 
                          {(easy-rsa-master/aggregator)}
                        )
                      ]
                    )
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_AndGreat val:'&>' span_id:8892)
                      fd: -1
                      arg_word: {(${ Id.VSub_Name cert_create_debug_output)}
                    )
                  ]
                )
                (command.BraceGroup
                  children: [
                    (command.Simple
                      words: [{(cat)} {(DQ (${ Id.VSub_Name cert_create_debug_output))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:8918)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{(echo)} {(DQ ('=== Failed to setup easy-rsa: Aborting ==='))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:8928)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:8932)
                      arg_word: {(2)}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: generate-certs
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-r)} 
              {(Id.Lit_VarLike 'cert_create_debug_output=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:8984)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(mktemp)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cert_create_debug_output.XXX))})
                      ]
                    )
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Subshell
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(Id.KW_Set set)} {(-x)})
                        (C {(cd)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/easyrsa3))})
                        (C {(./easyrsa)} {(init-pki)})
                        (C {(./easyrsa)} {(--batch)} 
                          {
                            (DQ ('--req-cn=') (${ Id.VSub_Name PRIMARY_CN) ('@') 
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9035)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(date)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)})]
                                  )
                              )
                            )
                          } {(build-ca)} {(nopass)}
                        )
                        (C {(./easyrsa)} 
                          {(--subject-alt-name) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name SANS))} {(build-server-full)} {(DQ (${ Id.VSub_Name MASTER_NAME))} {(nopass)}
                        )
                        (C {(./easyrsa)} {(build-client-full)} {(kube-apiserver)} {(nopass)})
                        (C 
                          {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') 
                            (Id.Lit_Other ':') (ensure-cfssl)
                          } {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cfssl))}
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (SQ 
                                (Token
                                  id: Id.Lit_Chars
                                  val: 
'{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}'
                                  span_id: 9104
                                )
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:9107)
                              fd: -1
                              arg_word: {(DQ (ca-config.json))}
                            )
                          ]
                        )
                        (command.Pipeline
                          children: [
                            (C {(echo)} 
                              {
                                (SQ 
                                  (Token
                                    id: Id.Lit_Chars
                                    val: 
'{"CN":"kubelet","names":[{"O":"system:nodes"}],"hosts":[""],"key":{"algo":"rsa","size":2048}}'
                                    span_id: 9121
                                  )
                                )
                              }
                            )
                            (C {(DQ (${ Id.VSub_Name CFSSL_BIN))} {(gencert)} 
                              {(-ca) (Id.Lit_Equals '=') (pki/ca.crt)} {(-ca-key) (Id.Lit_Equals '=') (pki/private/ca.key)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} 
                              {(-)}
                            )
                            (C {(DQ (${ Id.VSub_Name CFSSLJSON_BIN))} {(-bare)} {(kubelet)})
                          ]
                          negated: F
                        )
                        (C {(mv)} {(DQ (kubelet-key.pem))} {(DQ (pki/private/kubelet.key))})
                        (C {(mv)} {(DQ (kubelet.pem))} {(DQ (pki/issued/kubelet.crt))})
                        (C {(rm)} {(-f)} {(DQ (kubelet.csr))})
                        (C {(./easyrsa)} {(--dn-mode) (Id.Lit_Equals '=') (org)} 
                          {(--req-cn) (Id.Lit_Equals '=') (kubecfg)} {(--req-org) (Id.Lit_Equals '=') (system) (Id.Lit_Other ':') (masters)} {(--req-c) (Id.Lit_Equals '=')} 
                          {(--req-st) (Id.Lit_Equals '=')} {(--req-city) (Id.Lit_Equals '=')} {(--req-email) (Id.Lit_Equals '=')} {(--req-ou) (Id.Lit_Equals '=')} 
                          {(build-client-full)} {(kubecfg)} {(nopass)}
                        )
                      ]
                    )
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_AndGreat val:'&>' span_id:9241)
                      fd: -1
                      arg_word: {(${ Id.VSub_Name cert_create_debug_output)}
                    )
                  ]
                )
                (command.BraceGroup
                  children: [
                    (command.Simple
                      words: [{(cat)} {(DQ (${ Id.VSub_Name cert_create_debug_output))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9267)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {(echo)}
                        {(DQ ('=== Failed to generate master certificates: Aborting ==='))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9277)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:9281)
                      arg_word: {(2)}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: generate-aggregator-certs
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(-r)} 
              {(Id.Lit_VarLike 'cert_create_debug_output=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9333)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(mktemp)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cert_create_debug_output.XXX))})
                      ]
                    )
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Subshell
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(Id.KW_Set set)} {(-x)})
                        (C {(cd)} {(DQ (${ Id.VSub_Name KUBE_TEMP) (/easy-rsa-master/aggregator))})
                        (C {(./easyrsa)} {(init-pki)})
                        (C {(./easyrsa)} {(--batch)} 
                          {
                            (DQ ('--req-cn=') (${ Id.VSub_Name AGGREGATOR_PRIMARY_CN) ('@') 
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9384)
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(date)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)})]
                                  )
                              )
                            )
                          } {(build-ca)} {(nopass)}
                        )
                        (C {(./easyrsa)} 
                          {(--subject-alt-name) (Id.Lit_Equals '=') 
                            (DQ (${ Id.VSub_Name AGGREGATOR_SANS))
                          } {(build-server-full)} {(DQ (${ Id.VSub_Name AGGREGATOR_MASTER_NAME))} {(nopass)}
                        )
                        (C {(./easyrsa)} {(build-client-full)} {(aggregator-apiserver)} {(nopass)})
                        (C 
                          {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') 
                            (Id.Lit_Other ':') (ensure-cfssl)
                          } {(DQ (${ Id.VSub_Name KUBE_TEMP) (/cfssl))}
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (SQ 
                                (Token
                                  id: Id.Lit_Chars
                                  val: 
'{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}'
                                  span_id: 9453
                                )
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:9456)
                              fd: -1
                              arg_word: {(DQ (ca-config.json))}
                            )
                          ]
                        )
                        (command.Pipeline
                          children: [
                            (C {(echo)} 
                              {
                                (SQ 
                                  (Token
                                    id: Id.Lit_Chars
                                    val: 
'{"CN":"aggregator","hosts":[""],"key":{"algo":"rsa","size":2048}}'
                                    span_id: 9470
                                  )
                                )
                              }
                            )
                            (C {(DQ (${ Id.VSub_Name CFSSL_BIN))} {(gencert)} 
                              {(-ca) (Id.Lit_Equals '=') (pki/ca.crt)} {(-ca-key) (Id.Lit_Equals '=') (pki/private/ca.key)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} 
                              {(-)}
                            )
                            (C {(DQ (${ Id.VSub_Name CFSSLJSON_BIN))} {(-bare)} {(proxy-client)})
                          ]
                          negated: F
                        )
                        (C {(mv)} {(DQ (proxy-client-key.pem))} {(DQ (pki/private/proxy-client.key))})
                        (C {(mv)} {(DQ (proxy-client.pem))} {(DQ (pki/issued/proxy-client.crt))})
                        (C {(rm)} {(-f)} {(DQ (proxy-client.csr))})
                        (C {(./easyrsa)} {(--dn-mode) (Id.Lit_Equals '=') (org)} 
                          {(--req-cn) (Id.Lit_Equals '=') (proxy-clientcfg)} {(--req-org) (Id.Lit_Equals '=') (system) (Id.Lit_Other ':') (aggregator)} 
                          {(--req-c) (Id.Lit_Equals '=')} {(--req-st) (Id.Lit_Equals '=')} {(--req-city) (Id.Lit_Equals '=')} {(--req-email) (Id.Lit_Equals '=')} 
                          {(--req-ou) (Id.Lit_Equals '=')} {(build-client-full)} {(proxy-clientcfg)} {(nopass)}
                        )
                      ]
                    )
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_AndGreat val:'&>' span_id:9590)
                      fd: -1
                      arg_word: {(${ Id.VSub_Name cert_create_debug_output)}
                    )
                  ]
                )
                (command.BraceGroup
                  children: [
                    (command.Simple
                      words: [{(cat)} {(DQ (${ Id.VSub_Name cert_create_debug_output))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9616)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.Simple
                      words: [
                        {(echo)}
                        {(DQ ('=== Failed to generate aggregator certificates: Aborting ==='))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:9626)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:9630)
                      arg_word: {(2)}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: generate-etcd-cert
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'cert_dir=') (${ Id.VSub_Number 1)})
            (C {(local)} {(Id.Lit_VarLike 'member_ip=') (${ Id.VSub_Number 2)})
            (C {(local)} {(Id.Lit_VarLike 'type_cert=') (${ Id.VSub_Number 3)})
            (C {(local)} 
              {(Id.Lit_VarLike 'prefix=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Number val:4 span_id:9719)
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {(DQ (${ Id.VSub_Name type_cert))}
                    )
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'GEN_ETCD_CA_CERT=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:GEN_ETCD_CA_CERT span_id:9734)
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                )
              }
            )
            (C {(local)} 
              {(Id.Lit_VarLike 'GEN_ETCD_CA_KEY=') 
                (braced_var_sub
                  token: (Token id:Id.VSub_Name val:GEN_ETCD_CA_KEY span_id:9743)
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                )
              }
            )
            (C {(mkdir)} {(-p)} {(DQ (${ Id.VSub_Name cert_dir))})
            (C {(pushd)} {(DQ (${ Id.VSub_Name cert_dir))})
            (C 
              {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (util) (Id.Lit_Other ':') (Id.Lit_Other ':') 
                (ensure-cfssl)
              } {(.)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-r)} {(DQ (ca-config.json))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:9795)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:9802)
                          fd: -1
                          arg_word: {(ca-config.json)}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:9805)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 9951
                          stdin_parts: [
                            ('{\n')
                            ('    ')
                            (Id.Right_DoubleQuote '"')
                            (signing)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('        ')
                            (Id.Right_DoubleQuote '"')
                            (default)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (expiry)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (43800h)
                            (Id.Right_DoubleQuote '"')
                            ('\n')
                            ('        },\n')
                            ('        ')
                            (Id.Right_DoubleQuote '"')
                            (profiles)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (server)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('                ')
                            (Id.Right_DoubleQuote '"')
                            (expiry)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (43800h)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                ')
                            (Id.Right_DoubleQuote '"')
                            (usages)
                            (Id.Right_DoubleQuote '"')
                            (': [\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            (signing)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('key encipherment')
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('server auth')
                            (Id.Right_DoubleQuote '"')
                            ('\n')
                            ('                ]\n')
                            ('            },\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (client)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('                ')
                            (Id.Right_DoubleQuote '"')
                            (expiry)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (43800h)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                ')
                            (Id.Right_DoubleQuote '"')
                            (usages)
                            (Id.Right_DoubleQuote '"')
                            (': [\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            (signing)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('key encipherment')
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('client auth')
                            (Id.Right_DoubleQuote '"')
                            ('\n')
                            ('                ]\n')
                            ('            },\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (peer)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('                ')
                            (Id.Right_DoubleQuote '"')
                            (expiry)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (43800h)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                ')
                            (Id.Right_DoubleQuote '"')
                            (usages)
                            (Id.Right_DoubleQuote '"')
                            (': [\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            (signing)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('key encipherment')
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('server auth')
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('                    ')
                            (Id.Right_DoubleQuote '"')
                            ('client auth')
                            (Id.Right_DoubleQuote '"')
                            ('\n')
                            ('                ]\n')
                            ('            }\n')
                            ('        }\n')
                            ('    }\n')
                            ('}\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [9782 9797]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-r)} {(DQ (ca-csr.json))} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:9970)
                    )
                  ]
                  action: [
                    (command.Simple
                      words: [{(cat)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:9977)
                          fd: -1
                          arg_word: {(ca-csr.json)}
                        )
                        (redir.HereDoc
                          op: (Token id:Id.Redir_DLess val:'<<' span_id:9980)
                          fd: -1
                          here_begin: {(EOF)}
                          here_end_span_id: 10050
                          stdin_parts: [
                            ('{\n')
                            ('    ')
                            (Id.Right_DoubleQuote '"')
                            (CN)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (Kubernetes)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('    ')
                            (Id.Right_DoubleQuote '"')
                            (key)
                            (Id.Right_DoubleQuote '"')
                            (': {\n')
                            ('        ')
                            (Id.Right_DoubleQuote '"')
                            (algo)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (ecdsa)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('        ')
                            (Id.Right_DoubleQuote '"')
                            (size)
                            (Id.Right_DoubleQuote '"')
                            (': 256\n')
                            ('    },\n')
                            ('    ')
                            (Id.Right_DoubleQuote '"')
                            (names)
                            (Id.Right_DoubleQuote '"')
                            (': [\n')
                            ('        {\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (C)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (US)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (L)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (CA)
                            (Id.Right_DoubleQuote '"')
                            (',\n')
                            ('            ')
                            (Id.Right_DoubleQuote '"')
                            (O)
                            (Id.Right_DoubleQuote '"')
                            (': ')
                            (Id.Right_DoubleQuote '"')
                            (kubernetes.io)
                            (Id.Right_DoubleQuote '"')
                            ('\n')
                            ('        }\n')
                            ('    ]\n')
                            ('}\n')
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [9957 9972]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ (${ Id.VSub_Name GEN_ETCD_CA_CERT))}
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(DQ (${ Id.VSub_Name GEN_ETCD_CA_KEY))}
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:10079)
                    )
                  ]
                  action: [
                    (command.Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ Id.VSub_Name ca_cert))})
                        (C {(base64)} {(--decode)})
                        (command.Simple
                          words: [{(gunzip)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:10102)
                              fd: -1
                              arg_word: {(ca.pem)}
                            )
                          ]
                        )
                      ]
                      negated: F
                    )
                    (command.Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ Id.VSub_Name ca_key))})
                        (command.Simple
                          words: [{(base64)} {(--decode)}]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_Great val:'>' span_id:10121)
                              fd: -1
                              arg_word: {(ca-key.pem)}
                            )
                          ]
                        )
                      ]
                      negated: F
                    )
                  ]
                  spids: [10056 10081]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalOr
                              left: 
                                (bool_expr.LogicalNot
                                  child: (bool_expr.Unary op_id:Id.BoolUnary_r child:{(DQ (ca.pem))})
                                )
                              right: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_r
                                      child: {(DQ (ca-key.pem))}
                                    )
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:10153)
                    )
                  ]
                  action: [
                    (command.Pipeline
                      children: [
                        (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} {(-initca)} {(ca-csr.json)})
                        (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(ca)} {(-)})
                      ]
                      negated: F
                    )
                  ]
                  spids: [10130 10155]
                )
              ]
            )
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name type_cert))}
              arms: [
                (case_arm
                  pat_list: [{(client)}]
                  action: [
                    (C {(echo)} {(DQ ('Generate client certificates...'))})
                    (command.Pipeline
                      children: [
                        (C {(echo)} 
                          {
                            (SQ 
                              (Token
                                id: Id.Lit_Chars
                                val: 
'{"CN":"client","hosts":["*"],"key":{"algo":"ecdsa","size":256}}'
                                span_id: 10210
                              )
                            )
                          }
                        )
                        (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} 
                          {(-ca) (Id.Lit_Equals '=') (ca.pem)} {(-ca-key) (Id.Lit_Equals '=') (ca-key.pem)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} 
                          {(-profile) (Id.Lit_Equals '=') (client)} {(-)}
                        )
                        (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(DQ (${ Id.VSub_Name prefix))})
                      ]
                      negated: F
                    )
                  ]
                  spids: [10196 10197 10258 -1]
                )
                (case_arm
                  pat_list: [{(server)}]
                  action: [
                    (C {(echo)} {(DQ ('Generate server certificates...'))})
                    (command.Pipeline
                      children: [
                        (C {(echo)} 
                          {(SQ (Token id:Id.Lit_Chars val:'{"CN":"' span_id:10275)) 
                            (${ Id.VSub_Name member_ip) (SQ (Token id:Id.Lit_Chars val:'","hosts":[""],"key":{"algo":"ecdsa","size":256}}' span_id:10281))
                          }
                        )
                        (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} 
                          {(-ca) (Id.Lit_Equals '=') (ca.pem)} {(-ca-key) (Id.Lit_Equals '=') (ca-key.pem)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} 
                          {(-profile) (Id.Lit_Equals '=') (server)} {(-hostname) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name member_ip) (',127.0.0.1'))} {(-)}
                        )
                        (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(DQ (${ Id.VSub_Name prefix))})
                      ]
                      negated: F
                    )
                  ]
                  spids: [10261 10262 10338 -1]
                )
                (case_arm
                  pat_list: [{(peer)}]
                  action: [
                    (C {(echo)} {(DQ ('Generate peer certificates...'))})
                    (command.Pipeline
                      children: [
                        (C {(echo)} 
                          {(SQ (Token id:Id.Lit_Chars val:'{"CN":"' span_id:10355)) 
                            (${ Id.VSub_Name member_ip) (SQ (Token id:Id.Lit_Chars val:'","hosts":[""],"key":{"algo":"ecdsa","size":256}}' span_id:10361))
                          }
                        )
                        (C {(${ Id.VSub_Name CFSSL_BIN)} {(gencert)} 
                          {(-ca) (Id.Lit_Equals '=') (ca.pem)} {(-ca-key) (Id.Lit_Equals '=') (ca-key.pem)} {(-config) (Id.Lit_Equals '=') (ca-config.json)} 
                          {(-profile) (Id.Lit_Equals '=') (peer)} {(-hostname) (Id.Lit_Equals '=') (DQ (${ Id.VSub_Name member_ip) (',127.0.0.1'))} {(-)}
                        )
                        (C {(${ Id.VSub_Name CFSSLJSON_BIN)} {(-bare)} {(DQ (${ Id.VSub_Name prefix))})
                      ]
                      negated: F
                    )
                  ]
                  spids: [10341 10342 10418 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {(DQ ('Unknow, unsupported etcd certs type: ') (${ Id.VSub_Name type_cert))}
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:10434)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.Simple
                      words: [{(echo)} {(DQ ('Supported type: client, server, peer'))}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:10444)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:10448)
                      arg_word: {(2)}
                    )
                  ]
                  spids: [10421 10422 -1 10453]
                )
              ]
            )
            (C {(popd)})
          ]
        )
    )
    (command.ShFunction
      name: get-env-val
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} 
              {(Id.Lit_VarLike 'match=') 
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:10492)
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.Subshell
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {(echo)} {(DQ (${ Id.VSub_Number 1))})
                                        (C {(grep)} {(-E)} {(DQ ('^') (${ Id.VSub_Number 2) (':'))})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                            (C {(echo)} {(DQ )})
                          ]
                        )
                      ]
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name match)})
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:10539)
                    )
                  ]
                  action: [(C {(echo)} {(DQ )})]
                  spids: [10528 10541]
                )
              ]
            )
            (command.Pipeline
              children: [
                (C {(echo)} {(${ Id.VSub_Name match)})
                (C {(cut)} {(-d)} {(Id.Lit_Other ':')} {(-f)} {(2)})
                (C {(cut)} {(-d)} 
                  {
                    (word_part.EscapedLiteral
                      token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:10577)
                    )
                  } {(-f)} {(2)}
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: parse-master-env
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} 
              {(Id.Lit_VarLike 'master_env=') 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10605)
                  command_list: (command.CommandList children:[(C {(get-master-env)})])
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBELET_TOKEN)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10611)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (KUBELET_TOKEN))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10610]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBE_PROXY_TOKEN)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10627)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (KUBE_PROXY_TOKEN))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10626]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NODE_PROBLEM_DETECTOR_TOKEN)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10643)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (NODE_PROBLEM_DETECTOR_TOKEN))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10642]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CA_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10659)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (CA_CERT))})
                            ]
                          )
                      )
                    }
                  spids: [10658]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CA_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10675)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (CA_KEY))})
                            ]
                          )
                      )
                    }
                  spids: [10674]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10691)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (KUBEAPISERVER_CERT))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10690]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBEAPISERVER_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10707)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (KUBEAPISERVER_KEY))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10706]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXTRA_DOCKER_OPTS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10723)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (EXTRA_DOCKER_OPTS))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10722]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBELET_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10739)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (KUBELET_CERT))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10738]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:KUBELET_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10755)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (KUBELET_KEY))})
                            ]
                          )
                      )
                    }
                  spids: [10754]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MASTER_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10771)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (MASTER_CERT))})
                            ]
                          )
                      )
                    }
                  spids: [10770]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:MASTER_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10787)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} {(DQ (MASTER_KEY))})
                            ]
                          )
                      )
                    }
                  spids: [10786]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:AGGREGATOR_CA_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10803)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (AGGREGATOR_CA_KEY))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10802]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REQUESTHEADER_CA_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10819)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (REQUESTHEADER_CA_CERT))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10818]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_CERT_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10835)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (PROXY_CLIENT_CERT))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10834]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PROXY_CLIENT_KEY_BASE64)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10851)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (PROXY_CLIENT_KEY))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10850]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ENABLE_LEGACY_ABAC)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10867)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(get-env-val)} {(DQ (${ Id.VSub_Name master_env))} 
                                {(DQ (ENABLE_LEGACY_ABAC))}
                              )
                            ]
                          )
                      )
                    }
                  spids: [10866]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: update-or-verify-gcloud
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'sudo_prefix=') (DQ )})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-w)} 
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:10920)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(dirname)} 
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_Backtick
                                              val: '`'
                                              span_id: 10923
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [(C {(which)} {(gcloud)})]
                                            )
                                        )
                                      }
                                    )
                                  ]
                                )
                            )
                          } {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:10933)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:sudo_prefix)
                          op: assign_op.Equal
                          rhs: {(DQ (sudo))}
                          spids: [10938]
                        )
                      ]
                    )
                  ]
                  spids: [10912 10935]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(DQ (${ Id.VSub_Name KUBE_PROMPT_FOR_UPDATE))}
                              right: {(DQ (y))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:10968)
                    )
                  ]
                  action: [
                    (C {(${ Id.VSub_Name sudo_prefix)} {(gcloud)} 
                      {
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:gcloud_prompt span_id:10980)
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                        )
                      } {(components)} {(install)} {(alpha)}
                    )
                    (C {(${ Id.VSub_Name sudo_prefix)} {(gcloud)} 
                      {
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:gcloud_prompt span_id:10998)
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                        )
                      } {(components)} {(install)} {(beta)}
                    )
                    (C {(${ Id.VSub_Name sudo_prefix)} {(gcloud)} 
                      {
                        (braced_var_sub
                          token: (Token id:Id.VSub_Name val:gcloud_prompt span_id:11016)
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{})
                        )
                      } {(components)} {(update)}
                    )
                  ]
                  spids: [10951 10970]
                )
              ]
              else_action: [
                (C {(local)} 
                  {(Id.Lit_VarLike 'version=') 
                    (command_sub
                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:11031)
                      command_list: 
                        (command.CommandList
                          children: [(C {(gcloud)} {(version)} {(--format) (Id.Lit_Equals '=') (json)})]
                        )
                    )
                  }
                )
                (C {(python)} 
                  {(-c) 
                    (SQ (Token id:Id.Lit_Chars val:'\n' span_id:11046) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'import json,sys\n'
                        span_id: 11047
                      ) (Token id:Id.Lit_Chars val:'from distutils import version\n' span_id:11048) 
                      (Token id:Id.Lit_Chars val:'\n' span_id:11049) (Token id:Id.Lit_Chars val:'minVersion = version.LooseVersion("1.3.0")\n' span_id:11050) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'required = [ "alpha", "beta", "core" ]\n'
                        span_id: 11051
                      ) (Token id:Id.Lit_Chars val:'data = json.loads(sys.argv[1])\n' span_id:11052) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'rel = data.get("Google Cloud SDK")\n'
                        span_id: 11053
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'if rel != "HEAD" and version.LooseVersion(rel) < minVersion:\n'
                        span_id: 11054
                      ) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  print("gcloud version out of date ( < %s )" % minVersion)\n'
                        span_id: 11055
                      ) (Token id:Id.Lit_Chars val:'  exit(1)\n' span_id:11056) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'missing = []\n'
                        span_id: 11057
                      ) (Token id:Id.Lit_Chars val:'for c in required:\n' span_id:11058) 
                      (Token
                        id: Id.Lit_Chars
                        val: '  if not data.get(c):\n'
                        span_id: 11059
                      ) (Token id:Id.Lit_Chars val:'    missing += [c]\n' span_id:11060) 
                      (Token id:Id.Lit_Chars val:'if missing:\n' span_id:11061) (Token id:Id.Lit_Chars val:'  for c in missing:\n' span_id:11062) 
                      (Token
                        id: Id.Lit_Chars
                        val: '    print ("missing required gcloud component \\"{0}\\"".format(c))\n'
                        span_id: 11063
                      ) (Token id:Id.Lit_Chars val:'  exit(1)\n' span_id:11064) 
                      (Token id:Id.Lit_Chars val:'    ' span_id:11065)
                    )
                  } {(DQ ) (DQ (${ Id.VSub_Name version)) (DQ )}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: verify-kube-binaries
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'missing_binaries=') (false)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [
                                {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))}
                                {(version)}
                                {(--client)}
                              ]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:11126)
                                  fd: -1
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:11128)
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('!!! kubectl appears to be broken or missing'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:missing_binaries)
                          op: assign_op.Equal
                          rhs: {(true)}
                          spids: [11140]
                        )
                      ]
                    )
                  ]
                  spids: [11111 11130]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (C 
                              {
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:11151)
                                  command_list: 
                                    (command.CommandList
                                      children: [(C {(find-release-tars)})]
                                    )
                                )
                              }
                            )
                          ]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:11154)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:missing_binaries)
                          op: assign_op.Equal
                          rhs: {(true)}
                          spids: [11159]
                        )
                      ]
                    )
                  ]
                  spids: [11147 11156]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(DQ (${ Id.VSub_Name missing_binaries))})]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:11176)
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:11181)
                    )
                  ]
                  spids: [11167 11178]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:get_binaries_script)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/get-kube-binaries.sh))}
                  spids: [11188]
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'resp=') (DQ (y))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: 
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: 
                                            (Token
                                              id: Id.VSub_Name
                                              val: KUBERNETES_SKIP_CONFIRM
                                              span_id: 11213
                                            )
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_ColonHyphen
                                              arg_word: {(n)}
                                            )
                                        )
                                      )
                                    }
                                  right: 
                                    {(Id.Lit_Other '^') (Id.Lit_Other '[') (yY) (Id.Lit_Other ']') 
                                      (Id.Lit_Other '$')
                                    }
                                )
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:11228)
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ 
                          (
'Required binaries appear to be missing. Do you wish to download them? [Y/n]'
                          )
                        )
                      }
                    )
                    (C {(read)} {(resp)})
                  ]
                  spids: [11205 11230]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_EqualTilde
                              left: {(DQ (${ Id.VSub_Name resp))}
                              right: 
                                {(Id.Lit_Other '^') (Id.Lit_Other '[') (nN) (Id.Lit_Other ']') 
                                  (Id.Lit_Other '$')
                                }
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:11267)
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('You must download binaries to continue. You can use '))})
                    (C {(echo)} {(DQ ('  ') (${ Id.VSub_Name get_binaries_script))})
                    (C {(echo)} {(DQ ('to do this for your automatically.'))})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:11296)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [11248 11269]
                )
              ]
            )
            (C {(DQ (${ Id.VSub_Name get_binaries_script))})
          ]
        )
    )
    (command.ShFunction
      name: pushd
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{(command)} {(pushd)} {($ Id.VSub_At '$@')}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:11331)
                  fd: -1
                  arg_word: {(/dev/null)}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: popd
      body: 
        (command.BraceGroup
          children: [
            (command.Simple
              words: [{(command)} {(popd)} {($ Id.VSub_At '$@')}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:11356)
                  fd: -1
                  arg_word: {(/dev/null)}
                )
              ]
            )
          ]
        )
    )
  ]
)