(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ETCD_SERVERS)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Number 1>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(DQ ("http://8.8.8.18:2379"))}
                  )
                spids: [46 52]
              )
            }
          spids: [45]
        )
      ]
      spids: [45]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FLANNEL_NET)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Number 2>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(DQ (172.16.0.0/16))})
                spids: [55 61]
              )
            }
          spids: [54]
        )
      ]
      spids: [54]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CA_FILE)
          op: Equal
          rhs: {(DQ (/srv/kubernetes/etcd/ca.pem))}
          spids: [64]
        )
      ]
      spids: [64]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CERT_FILE)
          op: Equal
          rhs: {(DQ (/srv/kubernetes/etcd/client.pem))}
          spids: [69]
        )
      ]
      spids: [69]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KEY_FILE)
          op: Equal
          rhs: {(DQ (/srv/kubernetes/etcd/client-key.pem))}
          spids: [74]
        )
      ]
      spids: [74]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("FLANNEL_ETCD=") (Right_DoubleQuote "\"") ("-etcd-endpoints=") 
                (${ VSub_Name ETCD_SERVERS) (Right_DoubleQuote "\"") ("\n") ("FLANNEL_ETCD_KEY=") (Right_DoubleQuote "\"") 
                ("-etcd-prefix=/coreos.com/network") (Right_DoubleQuote "\"") ("\n") ("FLANNEL_ETCD_CAFILE=") (Right_DoubleQuote "\"") ("--etcd-cafile=") 
                (${ VSub_Name CA_FILE) (Right_DoubleQuote "\"") ("\n") ("FLANNEL_ETCD_CERTFILE=") (Right_DoubleQuote "\"") ("--etcd-certfile=") 
                (${ VSub_Name CERT_FILE) (Right_DoubleQuote "\"") ("\n") ("FLANNEL_ETCD_KEYFILE=") (Right_DoubleQuote "\"") ("--etcd-keyfile=") 
                (${ VSub_Name KEY_FILE) (Right_DoubleQuote "\"") ("\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [82]
        )
        (Redir op_id:Redir_Great fd:-1 arg_word:{(/opt/kubernetes/cfg/flannel)} spids:[85])
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("[Unit]\n") ("Description=Flanneld overlay address etcd agent\n") 
                ("After=network.target\n") ("Before=docker.service\n") ("\n") ("[Service]\n") ("EnvironmentFile=-/opt/kubernetes/cfg/flannel\n") 
                ("ExecStartPre=/opt/kubernetes/bin/remove-docker0.sh\n") ("ExecStart=/opt/kubernetes/bin/flanneld --ip-masq ") 
                (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{FLANNEL_ETCD} ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{FLANNEL_ETCD_KEY} ") 
                (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{FLANNEL_ETCD_CAFILE} ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) 
                ("{FLANNEL_ETCD_CERTFILE} ") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{FLANNEL_ETCD_KEYFILE}\n") 
                ("ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -d /run/flannel/docker\n") ("\n") ("Type=notify\n") ("\n") ("[Install]\n") ("WantedBy=multi-user.target\n") 
                ("RequiredBy=docker.service\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [128]
        )
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {(/usr/lib/systemd/system/flannel.service)}
          spids: [131]
        )
      ]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:attempt) op:Equal rhs:{(0)} spids:[164])]
      spids: [164]
    )
    (While
      cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ";">)]
      body: 
        (DoGroup
          children: [
            (SimpleCommand
              words: [
                {(/opt/kubernetes/bin/etcdctl)}
                {(--ca-file)}
                {(${ VSub_Name CA_FILE)}
                {(--cert-file)}
                {(${ VSub_Name CERT_FILE)}
                {(--key-file)}
                {(${ VSub_Name KEY_FILE)}
                {(--no-sync)}
                {(-C)}
                {(${ VSub_Name ETCD_SERVERS)}
                {(get)}
                {(/coreos.com/network/config)}
              ]
              redirects: [
                (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[211])
                (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[214])
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(DQ ($ VSub_QMark "$?"))}
                              right: {(0)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [-1 233]
                )
              ]
              else_action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_Great
                                  left: (ArithVarRef name:attempt)
                                  right: (ArithWord w:{(Lit_Digits 600)})
                                )
                            )
                          terminator: <Op_Semi ";">
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(echo)} {(DQ ("timeout for waiting network config"))}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: -1
                              arg_word: {(TildeSubPart prefix:"") (/kube/err.log)}
                              spids: [265]
                            )
                          ]
                        )
                        (C {(exit)} {(2)})
                      ]
                      spids: [-1 256]
                    )
                  ]
                  spids: [-1 276]
                )
                (SimpleCommand
                  words: [
                    {(/opt/kubernetes/bin/etcdctl)}
                    {(--ca-file)}
                    {(${ VSub_Name CA_FILE)}
                    {(--cert-file)}
                    {(${ VSub_Name CERT_FILE)}
                    {(--key-file)}
                    {(${ VSub_Name KEY_FILE)}
                    {(--no-sync)}
                    {(-C)}
                    {(${ VSub_Name ETCD_SERVERS)}
                    {(mk)}
                    {(/coreos.com/network/config)}
                    {
                      (DQ ("{") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (Network) 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (":") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name FLANNEL_NET) 
                        (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("}")
                      )
                    }
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(/dev/null)}
                      spids: [330]
                    )
                    (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[333])
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:attempt)
                      op: Equal
                      rhs: 
                        {
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Plus
                                left: (ArithVarRef name:attempt)
                                right: (ArithWord w:{(Lit_Digits 1)})
                              )
                            spids: [338 343]
                          )
                        }
                      spids: [337]
                    )
                  ]
                  spids: [337]
                )
                (C {(sleep)} {(3)})
              ]
              spids: [239 351]
            )
          ]
          spids: [172 353]
        )
    )
    (C {(wait)})
    (C {(systemctl)} {(daemon-reload)})
  ]
)