(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_ROOT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [80 88]
              ) (/..)
            }
          spids: [79]
        )
      ]
      spids: [79]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-f)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/env.sh))} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/env.sh))})]
          spids: [-1 108]
        )
      ]
      spids: [-1 120]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kube-util.sh))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEPRECATED_PROVIDERS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(DQ (centos))}
                  {(DQ (libvert-coreos))}
                  {(DQ (local))}
                  {(DQ (openstack-heat))}
                  {(DQ (photon-controller))}
                  {(DQ (vagrant))}
                  {(DQ (vsphere))}
                  {(DQ (windows))}
                ]
              )
            }
          spids: [133]
        )
      ]
      spids: [133]
    )
    (ForEach
      iter_name: provider
      iter_words: [
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name DEPRECATED_PROVIDERS>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [186 191]
            )
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name KUBERNETES_PROVIDER))}
                              right: {(DQ (${ VSub_Name provider))}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)}]
                      redirects: [
                        (HereDoc
                          op_id: Redir_DLess
                          fd: -1
                          body: 
                            {
                              (DQ ("\n") ("!!! DEPRECATION NOTICE !!!\n") ("\n") ("The '") 
                                (${ VSub_Name provider) ("' kube-up provider is deprecated and will be removed in a future\n") 
                                (
"release of kubernetes. Deprecated providers will be removed within 2 releases.\n"
                                ) ("\n") ("See https://github.com/kubernetes/kubernetes/issues/49213 for more info.\n") ("\n")
                              )
                            }
                          do_expansion: True
                          here_end: EOF
                          was_filled: True
                          spids: [224]
                        )
                        (Redir
                          op_id: Redir_GreatAnd
                          fd: 1
                          arg_word: {(2)}
                          spids: [227]
                        )
                      ]
                    )
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [-1 219]
                )
              ]
              spids: [-1 246]
            )
          ]
          spids: [195 248]
        )
      spids: [184 193]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name ZONE>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )})
                        spids: [258 261]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ("... Starting cluster using provider: ") (${ VSub_Name KUBERNETES_PROVIDER))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[279])]
            )
          ]
          spids: [-1 267]
        )
      ]
      else_action: [
        (SimpleCommand
          words: [
            {(echo)}
            {
              (DQ ("... Starting cluster in ") (${ VSub_Name ZONE) (" using provider ") 
                (${ VSub_Name KUBERNETES_PROVIDER)
              )
            }
          ]
          redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[298])]
        )
      ]
      spids: [282 301]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("... calling verify-prereqs"))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[310])]
    )
    (C {(verify-prereqs)})
    (SimpleCommand
      words: [{(echo)} {(DQ ("... calling verify-kube-binaries"))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[321])]
    )
    (C {(verify-kube-binaries)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBE_STAGE_IMAGES>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [332 335]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("... staging images"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[356])]
            )
            (C {(stage-images)})
          ]
          spids: [-1 347]
        )
      ]
      spids: [-1 362]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ ("... calling kube-up"))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[371])]
    )
    (C {(kube-up)})
    (SimpleCommand
      words: [{(echo)} {(DQ ("... calling validate-cluster"))}]
      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[383])]
    )
    (AndOr
      children: [
        (Subshell child:(C {(validate-cluster)}) spids:[389391])
        (AndOr
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:validate_result)
                  op: Equal
                  rhs: {(DQ ($ VSub_QMark "$?"))}
                  spids: [395]
                )
              ]
              spids: [395]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:validate_result)
                  op: Equal
                  rhs: {(DQ ($ VSub_QMark "$?"))}
                  spids: [402]
                )
              ]
              spids: [402]
            )
          ]
          op_id: Op_DPipe
        )
      ]
      op_id: Op_DAmp
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ (${ VSub_Name validate_result))}
                      right: {(DQ (1))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(exit)} {(1)})]
          spids: [-1 439]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(DQ (${ VSub_Name validate_result))}
                      right: {(DQ (2))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("...ignoring non-fatal errors in validate-cluster"))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[474])]
            )
          ]
          spids: [446 465]
        )
      ]
      spids: [-1 477]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name ENABLE_PROXY>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [485 488]
                            )
                          )
                        }
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(.)} {(/tmp/kube-proxy-env)})
            (C {(echo)} {(DQ )})
            (C {(echo)} 
              {
                (DQ 
                  (
"*** Please run the following to add the kube-apiserver endpoint to your proxy white-list ***"
                  )
                )
              }
            )
            (C {(cat)} {(/tmp/kube-proxy-env)})
            (C {(echo)} 
              {
                (DQ 
                  (
"***                                                                                      ***"
                  )
                )
              }
            )
            (C {(echo)} {(DQ )})
          ]
          spids: [-1 500]
        )
      ]
      spids: [-1 538]
    )
    (SimpleCommand
      words: [
        {(echo)}
        {(-e)}
        {(DQ ("Done, listing cluster services:") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))}
      ]
      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[550])]
    )
    (C {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/kubectl.sh))} {(cluster-info)})
    (C {(echo)})
    (C {(exit)} {(0)})
  ]
)