(CommandList
  children: [
    (C {(set)} {(-e)})
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ($ VSub_Number "$0") 
                    (
" [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]\n"
                    ) ("\n") ("Generate Docker daemon options based on flannel env file\n") ("OPTIONS:\n") 
                    ("    -f  Path to flannel env file. Defaults to /run/flannel/subnet.env\n") ("    -d  Path to Docker env file to write to. Defaults to /run/docker_opts.env\n") 
                    (
"    -i  Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500\n"
                    ) ("    -c  Output combined Docker options into DOCKER_OPTS var\n") 
                    ("    -k  Set the combined options key to this value (default DOCKER_OPTS=)\n") ("    -m  Do not output --ip-masq (useful for older Docker version)\n")
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/stderr)} spids:[79])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [60]
        )
      spids: [56 59]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:flannel_env)
          op: Equal
          rhs: {(DQ (/run/flannel/subnet.env))}
          spids: [91]
        )
      ]
      spids: [91]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:docker_env)
          op: Equal
          rhs: {(DQ (/run/docker_opts.env))}
          spids: [96]
        )
      ]
      spids: [96]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:combined_opts_key)
          op: Equal
          rhs: {(DQ (DOCKER_OPTS))}
          spids: [101]
        )
      ]
      spids: [101]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:indiv_opts) op:Equal rhs:{(false)} spids:[106])]
      spids: [106]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:combined_opts) op:Equal rhs:{(false)} spids:[109])]
      spids: [109]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ipmasq) op:Equal rhs:{(true)} spids:[112])]
      spids: [112]
    )
    (While
      cond: [(Sentence child:(C {(getopts)} {(DQ ("f:d:ick:"))} {(opt)}) terminator:<Op_Semi ";">)]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name "$opt")}
              arms: [
                (case_arm
                  pat_list: [{(f)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:flannel_env)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [141]
                        )
                      ]
                      spids: [141]
                    )
                  ]
                  spids: [137 138 145 -1]
                )
                (case_arm
                  pat_list: [{(d)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:docker_env)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [152]
                        )
                      ]
                      spids: [152]
                    )
                  ]
                  spids: [148 149 156 -1]
                )
                (case_arm
                  pat_list: [{(i)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:indiv_opts)
                          op: Equal
                          rhs: {(true)}
                          spids: [163]
                        )
                      ]
                      spids: [163]
                    )
                  ]
                  spids: [159 160 167 -1]
                )
                (case_arm
                  pat_list: [{(c)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:combined_opts)
                          op: Equal
                          rhs: {(true)}
                          spids: [174]
                        )
                      ]
                      spids: [174]
                    )
                  ]
                  spids: [170 171 178 -1]
                )
                (case_arm
                  pat_list: [{(m)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ipmasq)
                          op: Equal
                          rhs: {(false)}
                          spids: [185]
                        )
                      ]
                      spids: [185]
                    )
                  ]
                  spids: [181 182 189 -1]
                )
                (case_arm
                  pat_list: [{(k)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:combined_opts_key)
                          op: Equal
                          rhs: {($ VSub_Name "$OPTARG")}
                          spids: [196]
                        )
                      ]
                      spids: [196]
                    )
                  ]
                  spids: [192 193 200 -1]
                )
                (case_arm
                  pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar "\\?">)}]
                  action: [(C {(usage)})]
                  spids: [203 204 210 -1]
                )
              ]
              spids: [130 134 213]
            )
          ]
          spids: [127 215]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobEqual
                          left: {($ VSub_Name "$indiv_opts")}
                          right: {(false)}
                        )
                    )
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobEqual
                          left: {($ VSub_Name "$combined_opts")}
                          right: {(false)}
                        )
                    )
                  ]
                  op_id: Op_DAmp
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:indiv_opts) op:Equal rhs:{(true)} spids:[246])]
              spids: [246]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:combined_opts)
                  op: Equal
                  rhs: {(true)}
                  spids: [250]
                )
              ]
              spids: [250]
            )
          ]
          spids: [-1 243]
        )
      ]
      spids: [-1 253]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_f child:{(DQ ($ VSub_Name "$flannel_env"))})
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(source)} {($ VSub_Name "$flannel_env")})]
          spids: [-1 269]
        )
      ]
      spids: [-1 276]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_n child:{(DQ ($ VSub_Name "$FLANNEL_SUBNET"))})
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOCKER_OPT_BIP)
                  op: Equal
                  rhs: {(DQ ("--bip=") ($ VSub_Name "$FLANNEL_SUBNET"))}
                  spids: [295]
                )
              ]
              spids: [295]
            )
          ]
          spids: [-1 292]
        )
      ]
      spids: [-1 301]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: (BoolUnary op_id:BoolUnary_n child:{(DQ ($ VSub_Name "$FLANNEL_MTU"))})
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOCKER_OPT_MTU)
                  op: Equal
                  rhs: {(DQ ("--mtu=") ($ VSub_Name "$FLANNEL_MTU"))}
                  spids: [320]
                )
              ]
              spids: [320]
            )
          ]
          spids: [-1 317]
        )
      ]
      spids: [-1 326]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (AndOr
                  children: [
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobEqual
                          left: {(DQ ($ VSub_Name "$FLANNEL_IPMASQ"))}
                          right: {(true)}
                        )
                    )
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_GlobEqual
                          left: {($ VSub_Name "$ipmasq")}
                          right: {(true)}
                        )
                    )
                  ]
                  op_id: Op_DAmp
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:DOCKER_OPT_IPMASQ)
                  op: Equal
                  rhs: {(DQ ("--ip-masq=false"))}
                  spids: [359]
                )
              ]
              spids: [359]
            )
          ]
          spids: [-1 356]
        )
      ]
      spids: [-1 364]
    )
    (C {(eval)} 
      {(Lit_VarLike "docker_opts=") 
        (DQ (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (${ VSub_Name combined_opts_key))
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:docker_opts) op:PlusEqual rhs:{(DQ (" "))} spids:[377])]
      spids: [377]
    )
    (SimpleCommand
      words: [{(echo)} {(-n)} {(DQ )}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$docker_env")} spids:[390])]
    )
    (ForEach
      iter_name: opt
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(compgen)} {(-v)} {(DOCKER_OPT_)})])
            left_token: <Left_CommandSub "$(">
            spids: [399 405]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(eval)} 
              {(Lit_VarLike "val=") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) 
                ($ VSub_Name "$opt")
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobEqual
                              left: {(DQ ($ VSub_Name "$indiv_opts"))}
                              right: {(true)}
                            )
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {
                          (DQ ($ VSub_Name "$opt") ("=") 
                            (EscapedLiteralPart
                              token: <Lit_EscapedChar "\\\"">
                            ) ($ VSub_Name "$val") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {($ VSub_Name "$docker_env")}
                          spids: [447]
                        )
                      ]
                    )
                  ]
                  spids: [-1 434]
                )
              ]
              spids: [-1 451]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:docker_opts)
                  op: PlusEqual
                  rhs: {(DQ ($ VSub_Name "$val") (" "))}
                  spids: [455]
                )
              ]
              spids: [455]
            )
          ]
          spids: [408 461]
        )
      spids: [398 406]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobEqual
                      left: {(DQ ($ VSub_Name "$combined_opts"))}
                      right: {(true)}
                    )
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ (${ VSub_Name combined_opts_key) ("=") 
                    (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name docker_opts) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">)
                  )
                }
              ]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {($ VSub_Name "$docker_env")}
                  spids: [496]
                )
              ]
            )
          ]
          spids: [-1 479]
        )
      ]
      spids: [-1 499]
    )
  ]
)