(command.CommandList
  children: [
    (command.ShFunction
      name: _xen_domain_names
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COMPREPLY)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: (Token id:Id.Op_LParen val:'(' span_id:12)
                        words: [
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:14)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_DollarParen
                                                val: '$('
                                                span_id: 21
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        words: [{(xm)} {(list)}]
                                                        redirects: [
                                                          (redir.Redir
                                                            op: 
                                                              (Token
                                                                id: Id.Redir_Great
                                                                val: '2>'
                                                                span_id: 27
                                                              )
                                                            fd: 2
                                                            arg_word: {(/dev/null)}
                                                          )
                                                        ]
                                                      )
                                                      (C {(awk)} 
                                                        {
                                                          (SQ 
                                                            (Token
                                                              id: Id.Lit_Chars
                                                              val: '!/Name|Domain-0/ { print $1 }'
                                                              span_id: 37
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        )
                                      } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                    )
                                  ]
                                )
                            )
                          }
                        ]
                      )
                    }
                  spids: [11]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _xen_domain_ids
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COMPREPLY)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: (Token id:Id.Op_LParen val:'(' span_id:64)
                        words: [
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:66)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} 
                                      {
                                        (DQ 
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_DollarParen
                                                val: '$('
                                                span_id: 73
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        words: [{(xm)} {(list)}]
                                                        redirects: [
                                                          (redir.Redir
                                                            op: 
                                                              (Token
                                                                id: Id.Redir_Great
                                                                val: '2>'
                                                                span_id: 79
                                                              )
                                                            fd: 2
                                                            arg_word: {(/dev/null)}
                                                          )
                                                        ]
                                                      )
                                                      (C {(awk)} 
                                                        {
                                                          (SQ 
                                                            (Token
                                                              id: Id.Lit_Chars
                                                              val: '!/Name|Domain-0/ { print $2 }'
                                                              span_id: 89
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        )
                                      } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                    )
                                  ]
                                )
                            )
                          }
                        ]
                      )
                    }
                  spids: [63]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.ShFunction
          name: _xm
          body: 
            (command.BraceGroup
              children: [
                (C {(local)} {(cur)} {(prev)} {(words)} {(cword)})
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {(_init_completion)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:130)
                    )
                  ]
                )
                (C {(local)} {(command)} {(options)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:commands)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (SQ 
                            (Token
                              id: Id.Lit_Chars
                              val: 'console vncviewer create new delete destroy domid domname\n'
                              span_id: 149
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        dump-core list mem-max mem-set migrate pause reboot rename reset\n'
                              span_id: 150
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        restore resume save shutdown start suspend sysrq trigger top unpause\n'
                              span_id: 151
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        uptime usb-add usb-del vcpu-list vcpu-pin vcpu-set debug-keys dmesg\n'
                              span_id: 152
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        info log serve sched-credit sched-sedf block-attach block-detach\n'
                              span_id: 153
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        block-list block-configure network-attach network-detach network-list\n'
                              span_id: 154
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        vtpm-list pci-attach pci-detach pci-list pci-list-assignable-devices\n'
                              span_id: 155
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        scsi-attach scsi-detach scsi-list vnet-list vnet-create vnet-delete\n'
                              span_id: 156
                            ) 
                            (Token
                              id: Id.Lit_Chars
                              val: 
'        labels addlabel rmlabel getlabel dry-run resources dumppolicy setpolicy\n'
                              span_id: 157
                            ) (Token id:Id.Lit_Chars val:'        resetpolicy getpolicy shell help' span_id:158)
                          )
                        }
                      spids: [147]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_eq
                                  left: {($ Id.VSub_DollarName '$cword')}
                                  right: {(1)}
                                )
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:175)
                        )
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (sh_array_literal
                                    left: (Token id:Id.Op_LParen val:'(' span_id:181)
                                    words: [
                                      {
                                        (command_sub
                                          left_token: 
                                            (Token
                                              id: Id.Left_DollarParen
                                              val: '$('
                                              span_id: 183
                                            )
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (C {(compgen)} {(-W)} 
                                                  {(DQ ($ Id.VSub_DollarName '$commands'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                )
                                              ]
                                            )
                                        )
                                      }
                                    ]
                                  )
                                }
                              spids: [180]
                            )
                          ]
                        )
                      ]
                      spids: [163 177]
                    )
                  ]
                  else_action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ ($ Id.VSub_DollarName '$cur'))}
                                      right: 
                                        {(Id.Lit_Other '*') (Id.BoolBinary_GlobEqual '=') 
                                          (Id.Lit_Other '*')
                                        }
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:222)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:cur span_id:229)
                                        suffix_op: 
                                          (suffix_op.PatSub
                                            pat: {('=*')}
                                            replace: {}
                                            replace_mode: Id.Undefined_Tok
                                          )
                                      )
                                    }
                                  spids: [227]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cur)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:cur span_id:238)
                                        suffix_op: 
                                          (suffix_op.PatSub
                                            pat: {('*=')}
                                            replace: {}
                                            replace_mode: Id.Undefined_Tok
                                          )
                                      )
                                    }
                                  spids: [236]
                                )
                              ]
                            )
                          ]
                          spids: [207 224]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:words span_id:251)
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                  )
                              )
                            }
                          spids: [249]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: {(DQ ($ Id.VSub_DollarName '$cur'))}
                                      right: {(-) (Id.Lit_Other '*')}
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:272)
                            )
                          ]
                          action: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$command')}
                              arms: [
                                (case_arm
                                  pat_list: [{(create)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: {(SQ (Token id:Id.Lit_Chars val:-c span_id:294))}
                                          spids: [292]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [288 289 298 -1]
                                )
                                (case_arm
                                  pat_list: [{(dmesg)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: {(SQ (Token id:Id.Lit_Chars val:--clear span_id:307))}
                                          spids: [305]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [301 302 311 -1]
                                )
                                (case_arm
                                  pat_list: [{(list)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: {(SQ (Token id:Id.Lit_Chars val:--long span_id:320))}
                                          spids: [318]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [314 315 324 -1]
                                )
                                (case_arm
                                  pat_list: [{(reboot)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: {(SQ (Token id:Id.Lit_Chars val:'-w -a' span_id:333))}
                                          spids: [331]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [327 328 337 -1]
                                )
                                (case_arm
                                  pat_list: [{(shutdown)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                (Token
                                                  id: Id.Lit_Chars
                                                  val: '-w -a -R -H'
                                                  span_id: 346
                                                )
                                              )
                                            }
                                          spids: [344]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [340 341 350 -1]
                                )
                                (case_arm
                                  pat_list: [{(sched-credit)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: 
                                            {(SQ (Token id:Id.Lit_Chars val:'-d -w -c' span_id:359))}
                                          spids: [357]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [353 354 363 -1]
                                )
                                (case_arm
                                  pat_list: [{(block-list)} {(network-list)} {(vtpm-list)} {(vnet-list)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: 
                                            {(SQ (Token id:Id.Lit_Chars val:'-l --long' span_id:378))}
                                          spids: [376]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [366 373 382 -1]
                                )
                                (case_arm
                                  pat_list: [{(getpolicy)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: {(SQ (Token id:Id.Lit_Chars val:--dumpxml span_id:391))}
                                          spids: [389]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [385 386 395 -1]
                                )
                                (case_arm
                                  pat_list: [{(new)}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:options)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (SQ 
                                                (Token
                                                  id: Id.Lit_Chars
                                                  val: 
'-h --help --help_config -q --quiet --path= -f=\n'
                                                  span_id: 404
                                                ) 
                                                (Token
                                                  id: Id.Lit_Chars
                                                  val: 
'                        --defconfig= -F= --config= -b --dryrun -x --xmldryrun\n'
                                                  span_id: 405
                                                ) 
                                                (Token
                                                  id: Id.Lit_Chars
                                                  val: 
'                        -s --skipdtd -p --paused -c --console_autoconnect'
                                                  span_id: 406
                                                )
                                              )
                                            }
                                          spids: [402]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [398 399 410 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: (Token id:Id.Op_LParen val:'(' span_id:417)
                                        words: [
                                          {
                                            (command_sub
                                              left_token: 
                                                (Token
                                                  id: Id.Left_DollarParen
                                                  val: '$('
                                                  span_id: 419
                                                )
                                              command_list: 
                                                (command.CommandList
                                                  children: [
                                                    (C {(compgen)} {(-W)} 
                                                      {(DQ ($ Id.VSub_DollarName '$options'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                    )
                                                  ]
                                                )
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [416]
                                )
                              ]
                            )
                          ]
                          spids: [258 274]
                        )
                      ]
                      else_action: [
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$command')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(console)}
                                {(destroy)}
                                {(domname)}
                                {(domid)}
                                {(list)}
                                {(mem-set)}
                                {(mem-max)}
                                {(pause)}
                                {(reboot)}
                                {(rename)}
                                {(shutdown)}
                                {(unpause)}
                                {(vcpu-list)}
                                {(vcpu-pin)}
                                {(vcpu-set)}
                                {(block-list)}
                                {(network-list)}
                                {(vtpm-list)}
                              ]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [504 505 511 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [450 491 517 -1]
                            )
                            (case_arm
                              pat_list: [{(migrate)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [534 535 541 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(3)}]
                                      action: [
                                        (C {(_known_hosts_real)} {(DQ ($ Id.VSub_DollarName '$cur'))})
                                      ]
                                      spids: [544 545 555 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [520 521 561 -1]
                            )
                            (case_arm
                              pat_list: [{(restore)} {(dry-run)} {(vnet-create)}]
                              action: [(C {(_filedir)})]
                              spids: [564 569 575 -1]
                            )
                            (case_arm
                              pat_list: [{(save)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [592 593 599 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(3)}]
                                      action: [(C {(_filedir)})]
                                      spids: [602 603 609 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [578 579 615 -1]
                            )
                            (case_arm
                              pat_list: [{(sysrq)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [632 633 639 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(3)}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: (Token id:Id.Op_LParen val:'(' span_id:647)
                                                    words: [
                                                      {
                                                        (command_sub
                                                          left_token: 
                                                            (Token
                                                              id: Id.Left_DollarParen
                                                              val: '$('
                                                              span_id: 649
                                                            )
                                                          command_list: 
                                                            (command.CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} 
                                                                  {(DQ ('r s e i u b'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [646]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [642 643 672 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [618 619 678 -1]
                            )
                            (case_arm
                              pat_list: [{(block-attach)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [695 696 702 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(3)}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: (Token id:Id.Op_LParen val:'(' span_id:710)
                                                    words: [
                                                      {
                                                        (command_sub
                                                          left_token: 
                                                            (Token
                                                              id: Id.Left_DollarParen
                                                              val: '$('
                                                              span_id: 712
                                                            )
                                                          command_list: 
                                                            (command.CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} 
                                                                  {(DQ ('phy: file:'))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [709]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [705 706 735 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(5)}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: (Token id:Id.Op_LParen val:'(' span_id:743)
                                                    words: [
                                                      {
                                                        (command_sub
                                                          left_token: 
                                                            (Token
                                                              id: Id.Left_DollarParen
                                                              val: '$('
                                                              span_id: 745
                                                            )
                                                          command_list: 
                                                            (command.CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} {(DQ ('w r'))} 
                                                                  {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [742]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [738 739 766 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(6)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [769 770 776 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [681 682 782 -1]
                            )
                            (case_arm
                              pat_list: [{(block-detach)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [799 800 806 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(3)}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: (Token id:Id.Op_LParen val:'(' span_id:814)
                                                    words: [
                                                      {
                                                        (command_sub
                                                          left_token: 
                                                            (Token
                                                              id: Id.Left_DollarParen
                                                              val: '$('
                                                              span_id: 816
                                                            )
                                                          command_list: 
                                                            (command.CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} 
                                                                  {
                                                                    (DQ 
                                                                      (command_sub
                                                                        left_token: 
                                                                          (Token
                                                                            id: Id.Left_DollarParen
                                                                            val: '$('
                                                                            span_id: 823
                                                                          )
                                                                        command_list: 
                                                                          (command.CommandList
                                                                            children: [
                                                                              (command.Pipeline
                                                                                children: [
                                                                                  (command.Simple
                                                                                    words: [
                                                                                      {(xm)}
                                                                                      {(block-list)}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$prev'
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (redir.Redir
                                                                                        op: 
                                                                                          (Token
                                                                                            id: 
Id.Redir_Great
                                                                                            val: 
'2>'
                                                                                            span_id: 
833
                                                                                          )
                                                                                        fd: 2
                                                                                        arg_word: 
                                                                                          {
                                                                                            (
/dev/null
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                  )
                                                                                  (C {(awk)} 
                                                                                    {
                                                                                      (SQ 
                                                                                        (Token
                                                                                          id: 
Id.Lit_Chars
                                                                                          val: 
'!/Vdev/ { print $1 }'
                                                                                          span_id: 
841
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  )
                                                                                ]
                                                                                negated: F
                                                                              )
                                                                            ]
                                                                          )
                                                                      )
                                                                    )
                                                                  } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [813]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [809 810 860 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [785 786 866 -1]
                            )
                            (case_arm
                              pat_list: [{(network-attach)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [883 884 890 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(Id.Lit_Star '*')}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: (Token id:Id.Op_LParen val:'(' span_id:898)
                                                    words: [
                                                      {
                                                        (command_sub
                                                          left_token: 
                                                            (Token
                                                              id: Id.Left_DollarParen
                                                              val: '$('
                                                              span_id: 900
                                                            )
                                                          command_list: 
                                                            (command.CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} 
                                                                  {
                                                                    (DQ 
                                                                      ('script= ip= mac= bridge=\n') ('                                backend=')
                                                                    )
                                                                  } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [897]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [893 894 922 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [869 870 928 -1]
                            )
                            (case_arm
                              pat_list: [{(network-detach)}]
                              action: [
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [945 946 952 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(3)}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (sh_array_literal
                                                    left: (Token id:Id.Op_LParen val:'(' span_id:960)
                                                    words: [
                                                      {
                                                        (command_sub
                                                          left_token: 
                                                            (Token
                                                              id: Id.Left_DollarParen
                                                              val: '$('
                                                              span_id: 962
                                                            )
                                                          command_list: 
                                                            (command.CommandList
                                                              children: [
                                                                (C {(compgen)} {(-W)} 
                                                                  {
                                                                    (DQ 
                                                                      (command_sub
                                                                        left_token: 
                                                                          (Token
                                                                            id: Id.Left_DollarParen
                                                                            val: '$('
                                                                            span_id: 968
                                                                          )
                                                                        command_list: 
                                                                          (command.CommandList
                                                                            children: [
                                                                              (command.Pipeline
                                                                                children: [
                                                                                  (command.Simple
                                                                                    words: [
                                                                                      {(xm)}
                                                                                      {
                                                                                        (
network-list
                                                                                        )
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$prev'
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (redir.Redir
                                                                                        op: 
                                                                                          (Token
                                                                                            id: 
Id.Redir_Great
                                                                                            val: 
'2>'
                                                                                            span_id: 
978
                                                                                          )
                                                                                        fd: 2
                                                                                        arg_word: 
                                                                                          {
                                                                                            (
/dev/null
                                                                                            )
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                  )
                                                                                  (C {(awk)} 
                                                                                    {
                                                                                      (SQ 
                                                                                        (Token
                                                                                          id: 
Id.Lit_Chars
                                                                                          val: 
'!/Idx/ { print $1 }'
                                                                                          span_id: 
986
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  )
                                                                                ]
                                                                                negated: F
                                                                              )
                                                                            ]
                                                                          )
                                                                      )
                                                                    )
                                                                  } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      }
                                                    ]
                                                  )
                                                }
                                              spids: [959]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [955 956 1005 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [931 932 1011 -1]
                            )
                            (case_arm
                              pat_list: [{(sched-credit)}]
                              action: [
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$prev')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(-d)}]
                                      action: [
                                        (C {(_xen_domain_names)})
                                        (command.ControlFlow
                                          token: 
                                            (Token
                                              id: Id.ControlFlow_Return
                                              val: return
                                              span_id: 1032
                                            )
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1025 1026 1037 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [1014 1015 1043 -1]
                            )
                            (case_arm
                              pat_list: [{(create)}]
                              action: [
                                (C {(_filedir)})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:COMPREPLY)
                                      op: assign_op.PlusEqual
                                      rhs: 
                                        {
                                          (sh_array_literal
                                            left: (Token id:Id.Op_LParen val:'(' span_id:1054)
                                            words: [
                                              {
                                                (command_sub
                                                  left_token: 
                                                    (Token
                                                      id: Id.Left_DollarParen
                                                      val: '$('
                                                      span_id: 1058
                                                    )
                                                  command_list: 
                                                    (command.CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {
                                                            (SQ 
                                                              (Token
                                                                id: Id.Lit_Chars
                                                                val: 
'$( command ls /etc/xen 2>/dev/null )'
                                                                span_id: 1065
                                                              )
                                                            )
                                                          } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [1053]
                                    )
                                  ]
                                )
                              ]
                              spids: [1046 1047 1081 -1]
                            )
                            (case_arm
                              pat_list: [{(new)}]
                              action: [
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$prev')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(-f)} {(-F)} {(--defconfig)} {(--config)}]
                                      action: [
                                        (C {(_filedir)})
                                        (command.ControlFlow
                                          token: 
                                            (Token
                                              id: Id.ControlFlow_Return
                                              val: return
                                              span_id: 1108
                                            )
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1095 1102 1113 -1]
                                    )
                                    (case_arm
                                      pat_list: [{(--path)}]
                                      action: [
                                        (C {(_filedir)} {(-d)})
                                        (command.ControlFlow
                                          token: 
                                            (Token
                                              id: Id.ControlFlow_Return
                                              val: return
                                              span_id: 1125
                                            )
                                          arg_word: {(0)}
                                        )
                                      ]
                                      spids: [1116 1117 1130 -1]
                                    )
                                  ]
                                )
                                (C {(_count_args)})
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$args')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(2)}]
                                      action: [(C {(_xen_domain_names)})]
                                      spids: [1147 1148 1154 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [1084 1085 1160 -1]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                )
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Return val:return span_id:1173)
                  arg_word: {(0)}
                )
              ]
            )
        )
        (C {(complete)} {(-F)} {(_xm)} {(xm)})
      ]
    )
  ]
)