(command.CommandList
  children: [
    (command.ShFunction
      name: _mdadm_raid_level
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(mode)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:26))
                  right: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:cword span_id:30))
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: 
                        {
                          (braced_var_sub
                            token: (Token id:Id.VSub_Name val:words span_id:46)
                            bracket_op: 
                              (bracket_op.ArrayIndex
                                expr: 
                                  (arith_expr.VarRef
                                    token: (Token id:Id.Lit_ArithVarLike val:i span_id:48)
                                  )
                              )
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [{(-C)} {(--create)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:mode)
                                  op: assign_op.Equal
                                  rhs: {(create)}
                                  spids: [61]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: (Token id:Id.ControlFlow_Break val:break span_id:65)
                            )
                          ]
                          spids: [55 58 68 -1]
                        )
                        (case_arm
                          pat_list: [{(-B)} {(--build)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:mode)
                                  op: assign_op.Equal
                                  rhs: {(build)}
                                  spids: [77]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: (Token id:Id.ControlFlow_Break val:break span_id:81)
                            )
                          ]
                          spids: [71 74 84 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$mode')}
              arms: [
                (case_arm
                  pat_list: [{(create)}]
                  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:106)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:108)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 'linear raid0 0 stripe raid1 1 mirror\n'
                                                    span_id: 115
                                                  ) 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 
'                raid4 4 raid5 5 raid6 6 raid10 10 multipath mp faulty'
                                                    span_id: 116
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [105]
                        )
                      ]
                    )
                  ]
                  spids: [101 102 132 -1]
                )
                (case_arm
                  pat_list: [{(build)}]
                  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:140)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:142)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 
'linear stripe raid0 0 raid1 multipath mp\n'
                                                    span_id: 149
                                                  ) (Token id:Id.Lit_Chars val:'                faulty' span_id:150)
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [139]
                        )
                      ]
                    )
                  ]
                  spids: [135 136 164 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _mdadm_raid_layout
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(level)})
            (command.ForExpr
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: (sh_lhs_expr.Name name:i)
                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_Less
                  left: (arith_expr.VarRef token:(Token id:Id.Lit_ArithVarLike val:i span_id:193))
                  right: 
                    (arith_expr.VarRef
                      token: (Token id:Id.Lit_ArithVarLike val:cword span_id:197)
                    )
                )
              update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i))
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobDEqual
                                      left: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:words span_id:216)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: 
                                                    (arith_expr.VarRef
                                                      token: 
                                                        (Token
                                                          id: Id.Lit_ArithVarLike
                                                          val: i
                                                          span_id: 218
                                                        )
                                                    )
                                                )
                                            )
                                          )
                                        }
                                      right: 
                                        {(-) 
                                          (word_part.ExtGlob
                                            op: (Token id:Id.ExtGlob_At val:'@(' span_id:226)
                                            arms: [{(l)} {(-level)}]
                                          )
                                        }
                                    )
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:233)
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:level)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: (Token id:Id.VSub_Name val:words span_id:240)
                                        bracket_op: 
                                          (bracket_op.ArrayIndex
                                            expr: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.VarRef
                                                    token: 
                                                      (Token
                                                        id: Id.Lit_ArithVarLike
                                                        val: i
                                                        span_id: 242
                                                      )
                                                  )
                                                right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                              )
                                          )
                                      )
                                    }
                                  spids: [238]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: (Token id:Id.ControlFlow_Break val:break span_id:249)
                            )
                          ]
                          spids: [210 235]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$level')}
              arms: [
                (case_arm
                  pat_list: [{(raid5)}]
                  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:271)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:273)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 'left-asymmetric left-symmetric\n'
                                                    span_id: 280
                                                  ) 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 
'                right-asymmetric right-symmetric la ra ls rs'
                                                    span_id: 281
                                                  )
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [270]
                        )
                      ]
                    )
                  ]
                  spids: [266 267 295 -1]
                )
                (case_arm
                  pat_list: [{(raid10)}]
                  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:303)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:305)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {(SQ (Token id:Id.Lit_Chars val:'n o p' span_id:312))} {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [302]
                        )
                      ]
                    )
                  ]
                  spids: [298 299 326 -1]
                )
                (case_arm
                  pat_list: [{(faulty)}]
                  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:334)
                                words: [
                                  {
                                    (command_sub
                                      left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:336)
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(compgen)} {(-W)} 
                                              {
                                                (SQ 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 'write-transient wt read-transient rt\n'
                                                    span_id: 343
                                                  ) 
                                                  (Token
                                                    id: Id.Lit_Chars
                                                    val: 
'                write-persistent wp read-persistent rp write-all read-fixable\n'
                                                    span_id: 344
                                                  ) (Token id:Id.Lit_Chars val:'                rf clear flush none' span_id:345)
                                                )
                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                            )
                                          ]
                                        )
                                    )
                                  }
                                ]
                              )
                            }
                          spids: [333]
                        )
                      ]
                    )
                  ]
                  spids: [329 330 359 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _mdadm_auto_flag
      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:375)
                        words: [
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:377)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} 
                                      {
                                        (SQ 
                                          (Token
                                            id: Id.Lit_Chars
                                            val: 'no yes md mdp part p'
                                            span_id: 384
                                          )
                                        )
                                      } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                    )
                                  ]
                                )
                            )
                          }
                        ]
                      )
                    }
                  spids: [374]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _mdadm_update_flag
      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:408)
                        words: [
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:410)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (C {(compgen)} {(-W)} 
                                      {
                                        (SQ 
                                          (Token
                                            id: Id.Lit_Chars
                                            val: 'sparc2.2 summaries uuid name homehost resync\n'
                                            span_id: 417
                                          ) (Token id:Id.Lit_Chars val:'        byteorder super-minor' span_id:418)
                                        )
                                      } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                    )
                                  ]
                                )
                            )
                          }
                        ]
                      )
                    }
                  spids: [407]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.ShFunction
          name: _mdadm
          body: 
            (command.BraceGroup
              children: [
                (C {(local)} {(cur)} {(prev)} {(words)} {(cword)} {(split)})
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {(_init_completion)} {(-s)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:461)
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$prev')}
                  arms: [
                    (case_arm
                      pat_list: [{(-c)} {(--config)} {(-b)} {(--bitmap)} {(--backup-file)}]
                      action: [
                        (C {(_filedir)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:487)
                          arg_word: {(0)}
                        )
                      ]
                      spids: [472 481 492 -1]
                    )
                    (case_arm
                      pat_list: [{(-l)} {(--level)}]
                      action: [
                        (C {(_mdadm_raid_level)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:504)
                          arg_word: {(0)}
                        )
                      ]
                      spids: [495 498 509 -1]
                    )
                    (case_arm
                      pat_list: [{(-p)} {(--layout)} {(--parity)}]
                      action: [
                        (C {(_mdadm_raid_layout)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:523)
                          arg_word: {(0)}
                        )
                      ]
                      spids: [512 517 528 -1]
                    )
                    (case_arm
                      pat_list: [{(-a)} {(--auto)}]
                      action: [
                        (C {(_mdadm_auto_flag)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:540)
                          arg_word: {(0)}
                        )
                      ]
                      spids: [531 534 545 -1]
                    )
                    (case_arm
                      pat_list: [{(-U)} {(--update)}]
                      action: [
                        (C {(_mdadm_update_flag)})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Return val:return span_id:557)
                          arg_word: {(0)}
                        )
                      ]
                      spids: [548 551 562 -1]
                    )
                  ]
                )
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {($ Id.VSub_DollarName '$split')})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Return val:return span_id:573)
                      arg_word: {(0)}
                    )
                  ]
                )
                (C {(local)} 
                  {(Id.Lit_VarLike 'options=') 
                    (SQ 
                      (Token
                        id: Id.Lit_Chars
                        val: '--help --help-options --version --verbose --quiet --brief\n'
                        span_id: 583
                      ) (Token id:Id.Lit_Chars val:'        --force --config= --scan --metadata= --homehost=' span_id:584)
                    )
                  }
                )
                (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:603)
                        )
                      ]
                      action: [
                        (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:620)
                                )
                              ]
                              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:626)
                                            words: [
                                              {
                                                (command_sub
                                                  left_token: 
                                                    (Token
                                                      id: Id.Left_DollarParen
                                                      val: '$('
                                                      span_id: 628
                                                    )
                                                  command_list: 
                                                    (command.CommandList
                                                      children: [
                                                        (C {(compgen)} {(-W)} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName '$options') 
                                                              (' --assemble --build --create\n') ('                --monitor --grow')
                                                            )
                                                          } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                        )
                                                      ]
                                                    )
                                                )
                                              }
                                            ]
                                          )
                                        }
                                      spids: [625]
                                    )
                                  ]
                                )
                              ]
                              spids: [608 622]
                            )
                          ]
                          else_action: [
                            (command.Case
                              to_match: 
                                {
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:words span_id:657)
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Minus
                                            left: 
                                              (arith_expr.VarRef
                                                token: 
                                                  (Token
                                                    id: Id.Lit_ArithVarLike
                                                    val: cword
                                                    span_id: 659
                                                  )
                                              )
                                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                          )
                                      )
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [{(-A)} {(--assemble)}]
                                  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:675)
                                                words: [
                                                  {
                                                    (command_sub
                                                      left_token: 
                                                        (Token
                                                          id: Id.Left_DollarParen
                                                          val: '$('
                                                          span_id: 677
                                                        )
                                                      command_list: 
                                                        (command.CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$options') 
                                                                  (' --uuid= --super-minor=\n') ('                        --name= --force --run --no-degraded --auto= --bitmap=\n') 
                                                                  (
'                        --backup-file= --update= --auto-update-homehost'
                                                                  )
                                                                )
                                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [674]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [668 671 703 -1]
                                )
                                (case_arm
                                  pat_list: [{(-B)} {(-C)} {(-G)} {(--build)} {(--create)} {(--grow)}]
                                  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:721)
                                                words: [
                                                  {
                                                    (command_sub
                                                      left_token: 
                                                        (Token
                                                          id: Id.Left_DollarParen
                                                          val: '$('
                                                          span_id: 723
                                                        )
                                                      command_list: 
                                                        (command.CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$options') 
                                                                  (' --raid-devices=\n') ('                        --spare-devices= --size= --chunk= --rounding= --level=\n') 
                                                                  (
'                        --layout= --parity= --bitmap= --bitmap-chunk=\n'
                                                                  ) ('                        --write-mostly --write-behind= --assume-clean\n') 
                                                                  (
'                        --backup-file= --name= --run --force --auto='
                                                                  )
                                                                )
                                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [720]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [706 717 751 -1]
                                )
                                (case_arm
                                  pat_list: [{(-F)} {(--follow)} {(--monitor)}]
                                  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:763)
                                                words: [
                                                  {
                                                    (command_sub
                                                      left_token: 
                                                        (Token
                                                          id: Id.Left_DollarParen
                                                          val: '$('
                                                          span_id: 765
                                                        )
                                                      command_list: 
                                                        (command.CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$options') 
                                                                  (' --mail --program\n') ('                        --alert --syslog --delay --daemonise --pid-file\n') 
                                                                  (
'                        --oneshot --test'
                                                                  )
                                                                )
                                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [762]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [754 759 790 -1]
                                )
                                (case_arm
                                  pat_list: [
                                    {(/dev/) (Id.Lit_Star '*')}
                                    {(--add)}
                                    {(--fail)}
                                    {(--remove)}
                                  ]
                                  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:805)
                                                words: [
                                                  {
                                                    (command_sub
                                                      left_token: 
                                                        (Token
                                                          id: Id.Left_DollarParen
                                                          val: '$('
                                                          span_id: 807
                                                        )
                                                      command_list: 
                                                        (command.CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$options') 
                                                                  (' --add --re-add\n') ('                        --remove --fail --set-faulty')
                                                                )
                                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [804]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [793 801 830 -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:838)
                                                words: [
                                                  {
                                                    (command_sub
                                                      left_token: 
                                                        (Token
                                                          id: Id.Left_DollarParen
                                                          val: '$('
                                                          span_id: 840
                                                        )
                                                      command_list: 
                                                        (command.CommandList
                                                          children: [
                                                            (C {(compgen)} {(-W)} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$options') 
                                                                  (' --query --detail\n') ('                        --examine --sparc2.2 --examine-bitmap --run --stop\n') 
                                                                  (
'                        --readonly --readwrite --zero-superblock --test'
                                                                  )
                                                                )
                                                              } {(--)} {(DQ ($ Id.VSub_DollarName '$cur'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [837]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [833 834 866 -1]
                                )
                              ]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName '$COMPREPLY')}
                                  right: {(Id.Lit_Other '*') (Id.BoolBinary_GlobEqual '=')}
                                )
                            )
                            (C {(compopt)} {(-o)} {(nospace)})
                          ]
                        )
                      ]
                      spids: [589 605]
                    )
                  ]
                  else_action: [
                    (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:900)
                                suffix_op: 
                                  (suffix_op.Unary
                                    op_id: Id.VTest_ColonEquals
                                    arg_word: {(Id.Lit_Slash /) (dev) (Id.Lit_Slash /)}
                                  )
                              )
                            }
                          spids: [898]
                        )
                      ]
                    )
                    (C {(_filedir)})
                  ]
                )
              ]
            )
        )
        (C {(complete)} {(-F)} {(_mdadm)} {(mdadm)})
      ]
    )
  ]
)