(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: 
            {
              (BracedVarSub
                token: <VSub_Name KUBE_ROOT>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [67 75]
                        ) (Lit_Slash /) (..)
                      }
                  )
                spids: [64 78]
              )
            }
          spids: [63]
        )
      ]
      spids: [63]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: (CommandList children:[(C {(uname)} {(-s)})])
              left_token: <Left_CommandSub '$('>
              spids: [87 91]
            )
          )
        }
      arms: [
        (case_arm
          pat_list: [{(Darwin)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_os) op:Equal rhs:{(darwin)} spids:[101])]
              spids: [101]
            )
          ]
          spids: [97 98 105 16777215]
        )
        (case_arm
          pat_list: [{(Linux)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_os) op:Equal rhs:{(linux)} spids:[112])]
              spids: [112]
            )
          ]
          spids: [108 109 116 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('Unsupported host OS.  Must be Linux or Mac OS X.'))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[129])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [119 120 138 16777215]
        )
      ]
      spids: [84 94 140]
    )
    (Case
      to_match: 
        {
          (DQ 
            (CommandSubPart
              command_list: (CommandList children:[(C {(uname)} {(-m)})])
              left_token: <Left_CommandSub '$('>
              spids: [146 150]
            )
          )
        }
      arms: [
        (case_arm
          pat_list: [{(x86_64) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(amd64)} spids:[161])]
              spids: [161]
            )
          ]
          spids: [156 158 165 16777215]
        )
        (case_arm
          pat_list: [{(i) (Lit_Other '?') (86_64) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(amd64)} spids:[175])]
              spids: [175]
            )
          ]
          spids: [168 172 179 16777215]
        )
        (case_arm
          pat_list: [{(amd64) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(amd64)} spids:[187])]
              spids: [187]
            )
          ]
          spids: [182 184 191 16777215]
        )
        (case_arm
          pat_list: [{(arm) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(arm)} spids:[199])]
              spids: [199]
            )
          ]
          spids: [194 196 203 16777215]
        )
        (case_arm
          pat_list: [{(i) (Lit_Other '?') (86) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(386)} spids:[213])]
              spids: [213]
            )
          ]
          spids: [206 210 217 16777215]
        )
        (case_arm
          pat_list: [{(s390x) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(s390x)} spids:[225])]
              spids: [225]
            )
          ]
          spids: [220 222 229 16777215]
        )
        (case_arm
          pat_list: [{(ppc64le) (Lit_Other '*')}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:host_arch) op:Equal rhs:{(ppc64le)} spids:[237])]
              spids: [237]
            )
          ]
          spids: [232 234 241 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {(DQ ('Unsupported host arch. Must be x86_64, 386, arm, s390x or ppc64le.'))}
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[254])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [244 245 263 16777215]
        )
      ]
      spids: [143 153 265]
    )
    (FuncDef
      name: get_absolute_dirname
      body: 
        (BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (AndOr
                            ops: [Op_DAmp]
                            children: [
                              (C {(cd)} 
                                {
                                  (DQ 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [(C {(dirname)} {(DQ ($ VSub_Number '$1'))})]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [288 294]
                                    )
                                  )
                                }
                              )
                              (C {(pwd)})
                            ]
                          )
                        ]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [284 300]
                  )
                )
              }
            )
          ]
          spids: [278]
        )
      spids: [274 277]
    )
    (FuncDef
      name: get_bin
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:bin)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 1>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)})
                          spids: [317 320]
                        )
                      )
                    }
                  spids: [315]
                )
              ]
              spids: [315]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:srcdir)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Number 2>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)})
                          spids: [326 329]
                        )
                      )
                    }
                  spids: [324]
                )
              ]
              spids: [324]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_GlobDEqual left:{(DQ (${ VSub_Name bin))} right:{(DQ )})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Binary name is required'))})
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 351]
                )
              ]
              spids: [16777215 366]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ (${ VSub_Name srcdir))}
                              right: {(DQ )}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Source directory path is required'))})
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 387]
                )
              ]
              spids: [16777215 402]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:locations)
                  op: Equal
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {(DQ (${ VSub_Name KUBE_ROOT) (/_output/bin/) (${ VSub_Name bin))}
                          {
                            (DQ (${ VSub_Name KUBE_ROOT) (/_output/dockerized/bin/) 
                              (${ VSub_Name host_os) (/) (${ VSub_Name host_arch) (/) (${ VSub_Name bin)
                            )
                          }
                          {
                            (DQ (${ VSub_Name KUBE_ROOT) (/_output/local/bin/) (${ VSub_Name host_os) 
                              (/) (${ VSub_Name host_arch) (/) (${ VSub_Name bin)
                            )
                          }
                          {
                            (DQ (${ VSub_Name KUBE_ROOT) (/bazel-bin/) (${ VSub_Name srcdir) (/) 
                              (${ VSub_Name bin)
                            )
                          }
                          {
                            (DQ (${ VSub_Name KUBE_ROOT) (/platforms/) (${ VSub_Name host_os) (/) 
                              (${ VSub_Name host_arch) (/) (${ VSub_Name bin)
                            )
                          }
                        ]
                      )
                    }
                  spids: [407]
                )
              ]
              spids: [407]
            )
            (C {(echo)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (Subshell
                              child: 
                                (AndOr
                                  ops: [Op_DPipe]
                                  children: [
                                    (SimpleCommand
                                      words: [
                                        {(ls)}
                                        {(-t)}
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name locations>
                                              bracket_op: (WholeArray op_id:Lit_At)
                                              spids: [507 512]
                                            )
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 2
                                          arg_word: {(/dev/null)}
                                          spids: [515]
                                        )
                                      ]
                                    )
                                    (C {(true)})
                                  ]
                                )
                              spids: [501 521]
                            )
                            (C {(head)} {(-1)})
                          ]
                          negated: F
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [499 529]
                )
              }
            )
          ]
          spids: [312]
        )
      spids: [306 311]
    )
    (FuncDef
      name: print_error
      body: 
        (BraceGroup
          children: [
            (BraceGroup
              children: [
                (C {(echo)} 
                  {
                    (DQ ("It looks as if you don't have a compiled ") 
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)})
                        spids: [550 553]
                      ) (' binary')
                    )
                  }
                )
                (C {(echo)})
                (C {(echo)} {(DQ ('If you are running from a clone of the git repo, please run'))})
                (C {(echo)} {(DQ ("'./build/run.sh make cross'. Note that this requires having"))})
                (C {(echo)} {(DQ ('Docker installed.'))})
                (C {(echo)})
                (C {(echo)} 
                  {(DQ ('If you are running from a binary release tarball, something is wrong. '))}
                )
                (C {(echo)} 
                  {(DQ ('Look at http://kubernetes.io/ for information on how to contact the '))}
                )
                (C {(echo)} {(DQ ('development team for help.'))})
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[608])]
              spids: [543]
            )
          ]
          spids: [540]
        )
      spids: [534 539]
    )
  ]
)