(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PATH spids:[40])
          op: Equal
          rhs: {(/sbin) (Lit_Other ':') (/usr/sbin) (Lit_Other ':') (/bin) (Lit_Other ':') (/usr/bin)}
          spids: [40]
        )
      ]
      spids: [40]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:KERNEL spids:[49])
          op: Equal
          rhs: 
            {
              (DQ 
                (word_part.CommandSubPart
                  command_list: (command.CommandList children:[(C {(uname)} {(-s)})])
                  left_token: <Left_CommandSub '$('>
                  spids: [51 55]
                )
              )
            }
          spids: [49]
        )
      ]
      spids: [49]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:RELEASE spids:[58])
          op: Equal
          rhs: 
            {
              (DQ 
                (word_part.CommandSubPart
                  command_list: (command.CommandList children:[(C {(uname)} {(-r)})])
                  left_token: <Left_CommandSub '$('>
                  spids: [60 64]
                )
              )
            }
          spids: [58]
        )
      ]
      spids: [58]
    )
    (C {(.)} {(/lib/init/vars.sh)})
    (C {(.)} {(/lib/lsb/init-functions)})
    (command.Case
      to_match: {(DQ (${ VSub_Name KERNEL) (':') (${ VSub_Name RELEASE))}
      arms: [
        (case_arm
          pat_list: [
            {(Linux) (Lit_Other ':') (Lit_Other '[') (01) (Lit_Other ']') (.) (Lit_Other '*')}
            {(Linux) (Lit_Other ':') (2.) (Lit_Other '[') (01) (Lit_Other ']') (.) (Lit_Other '*')}
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:FLAGS spids:[111])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [111]
                )
              ]
              spids: [111]
            )
          ]
          spids: [92 108 116 16777215]
        )
        (case_arm
          pat_list: [
            {(Linux) (Lit_Other ':') (2.) (Lit_Other '[') (23) (Lit_Other ']') (.) (Lit_Other '*')}
            {(Linux) (Lit_Other ':') (2.4.) (Lit_Other '?')}
            {(Linux) (Lit_Other ':') (2.4.) (Lit_Other '?') (-) (Lit_Other '*')}
            {(Linux) (Lit_Other ':') (2.4.10)}
            {(Linux) (Lit_Other ':') (2.4.10-) (Lit_Other '*')}
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:FLAGS spids:[151])
                  op: Equal
                  rhs: {(DQ (-f))}
                  spids: [151]
                )
              ]
              spids: [151]
            )
          ]
          spids: [119 148 157 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:FLAGS spids:[164])
                  op: Equal
                  rhs: {(DQ ('-f -l'))}
                  spids: [164]
                )
              ]
              spids: [164]
            )
          ]
          spids: [160 161 170 16777215]
        )
      ]
      spids: [77 89 172]
    )
    (command.FuncDef
      name: do_stop
      body: 
        (command.BraceGroup
          children: [
            (C {(halt)} {(-w)})
            (C {(rm)} {(-f)} {(/tmp/.clean)} {(/run/.clean)} {(/run/lock/.clean)})
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:DIRS spids:[222])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [222]
                )
              ]
              spids: [222]
            )
            (command.WhileUntil
              keyword: <KW_While while>
              cond: [(C {(read)} {(-r)} {(DEV)} {(MTPT)} {(FSTYPE)} {(OPTS)} {(REST)})]
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$MTPT'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(/)}
                            {(/proc)}
                            {(/dev)}
                            {(/dev/pts)}
                            {(/dev/shm)}
                            {(/proc/) (Lit_Other '*')}
                            {(/sys)}
                            {(/run)}
                            {(/run/) (Lit_Other '*')}
                          ]
                          action: [(command.ControlFlow token:<ControlFlow_Continue continue>)]
                          spids: [256 275 281 16777215]
                        )
                      ]
                      spids: [247 253 284]
                    )
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$FSTYPE'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(nfs)}
                            {(nfs4)}
                            {(smbfs)}
                            {(ncp)}
                            {(ncpfs)}
                            {(cifs)}
                            {(coda)}
                            {(ocfs2)}
                            {(gfs)}
                            {(ceph)}
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:DIRS spids:[318])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_DollarName '$MTPT') (' ') ($ VSub_DollarName '$DIRS'))
                                    }
                                  spids: [318]
                                )
                              ]
                              spids: [318]
                            )
                          ]
                          spids: [296 315 326 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(proc)}
                            {(procfs)}
                            {(linprocfs)}
                            {(devpts)}
                            {(usbfs)}
                            {(usbdevfs)}
                            {(sysfs)}
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:DIRS spids:[345])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_DollarName '$MTPT') (' ') ($ VSub_DollarName '$DIRS'))
                                    }
                                  spids: [345]
                                )
                              ]
                              spids: [345]
                            )
                          ]
                          spids: [329 342 353 16777215]
                        )
                      ]
                      spids: [287 293 356]
                    )
                    (command.Case
                      to_match: {(DQ ($ VSub_DollarName '$OPTS'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(_netdev)}
                            {(Lit_Other '*') (Lit_Comma ',') (_netdev)}
                            {(_netdev) (Lit_Comma ',') (Lit_Other '*')}
                            {(Lit_Other '*') (Lit_Comma ',') (_netdev) (Lit_Comma ',') (Lit_Other '*')}
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:DIRS spids:[386])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ ($ VSub_DollarName '$MTPT') (' ') ($ VSub_DollarName '$DIRS'))
                                    }
                                  spids: [386]
                                )
                              ]
                              spids: [386]
                            )
                          ]
                          spids: [368 383 394 16777215]
                        )
                      ]
                      spids: [359 365 397]
                    )
                  ]
                  spids: [244 400]
                )
              redirects: [(redir.Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(/etc/mtab)})]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [(C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$DIRS'))} {(Lit_Other ']')})]
                  action: [
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other '=')} 
                          {(no)} {(Lit_Other ']')}
                        )
                        (C {(log_action_begin_msg)} 
                          {(DQ ('Unmounting remote and non-toplevel virtual filesystems'))}
                        )
                      ]
                    )
                    (C {(fstab-decode)} {(umount)} {($ VSub_DollarName '$FLAGS')} 
                      {($ VSub_DollarName '$DIRS')}
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:ES spids:[452])
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [452]
                        )
                      ]
                      spids: [452]
                    )
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other '=')} 
                          {(no)} {(Lit_Other ']')}
                        )
                        (C {(log_action_end_msg)} {($ VSub_DollarName '$ES')})
                      ]
                    )
                  ]
                  spids: [16777215 419]
                )
              ]
              spids: [16777215 475]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {(Lit_Other '[')} {(-x)} {(/sbin/initctl)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (command.SimpleCommand
                          words: [{(initctl)} {(--quiet)} {(emit)} {(unmounted-remote-filesystems)}]
                          redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})]
                        )
                        (C {(true)})
                      ]
                    )
                  ]
                  spids: [16777215 498]
                )
              ]
              spids: [16777215 517]
            )
          ]
          spids: [180]
        )
      spids: [175 179]
    )
    (command.Case
      to_match: {(DQ ($ VSub_Number '$1'))}
      arms: [
        (case_arm pat_list:[{(start)} {(status)}] spids:[531 534 541 16777215])
        (case_arm
          pat_list: [{(restart)} {(reload)} {(force-reload)}]
          action: [
            (command.SimpleCommand
              words: [{(echo)} {(DQ ("Error: argument '") ($ VSub_Number '$1') ("' not supported"))}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)})
          ]
          spids: [544 549 569 16777215]
        )
        (case_arm
          pat_list: [{(stop)} {(DQ )}]
          action: [(C {(do_stop)})]
          spids: [572 576 582 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (command.SimpleCommand
              words: [{(echo)} {(DQ ('Usage: umountnfs.sh [start|stop]'))}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)})
          ]
          spids: [585 586 604 16777215]
        )
      ]
      spids: [522 528 606]
    )
    (C {(Lit_Other ':')})
  ]
)