(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LeftVar name:PATH)
          rhs: {(/sbin) (Lit_Other ":") (/usr/sbin) (Lit_Other ":") (/bin) (Lit_Other ":") (/usr/bin)}
          spids: [31]
        )
      ]
      spids: [31]
    )
    (C {(.)} {(/lib/init/vars.sh)})
    (C {(.)} {(/lib/lsb/init-functions)})
    (C {(umask)} {(022)})
    (FuncDef
      name: do_stop
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LeftVar name:PROTECTED_MOUNTS)
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (C {(sed)} {(-n)} {(SQ <":a;/^[^ ]* \\/ /!{H;n;ba};{H;s/.*//;x;s/\\n//;p}">)} 
                              {(/proc/mounts)}
                            )
                          spids: [65 75]
                        )
                      )
                    }
                  spids: [63]
                )
              ]
              spids: [63]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LeftVar name:WEAK_MTPTS) rhs:{(DQ )} spids:[79])]
              spids: [79]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LeftVar name:REG_MTPTS) rhs:{(DQ )} spids:[87])]
              spids: [87]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LeftVar name:TMPFS_MTPTS) rhs:{(DQ )} spids:[92])]
              spids: [92]
            )
            (While
              cond: (C {(read)} {(-r)} {(DEV)} {(MTPT)} {(FSTYPE)} {(REST)})
              body: 
                (DoGroup
                  child: 
                    (CommandList
                      children: [
                        (AndOr
                          children: [
                            (Pipeline
                              children: [
                                (C {(echo)} {(DQ ($ VSub_Name "$PROTECTED_MOUNTS"))})
                                (C {(grep)} {(-qs)} 
                                  {(DQ ("^") ($ VSub_Name "$DEV") (" ") ($ VSub_Name "$MTPT") (" "))}
                                )
                              ]
                              negated: False
                            )
                            (C {(continue)})
                          ]
                          op_id: Op_DAmp
                        )
                        (Case
                          to_match: {(DQ ($ VSub_Name "$MTPT"))}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(/)}
                                {(/proc)}
                                {(/dev)}
                                {(/.dev)}
                                {(/dev/pts)}
                                {(/dev/shm)}
                                {(/dev/.static/dev)}
                                {(/proc/) (Lit_Other "*")}
                                {(/sys)}
                                {(/sys/) (Lit_Other "*")}
                                {(/run)}
                                {(/run/) (Lit_Other "*")}
                              ]
                              action: (C {(continue)})
                              spids: [149 175 181 -1]
                            )
                          ]
                          spids: [140 146 184]
                        )
                        (Case
                          to_match: {(DQ ($ VSub_Name "$FSTYPE"))}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(proc)}
                                {(procfs)}
                                {(linprocfs)}
                                {(sysfs)}
                                {(usbfs)}
                                {(usbdevfs)}
                                {(devpts)}
                              ]
                              action: (C {(continue)})
                              spids: [196 209 215 -1]
                            )
                            (case_arm
                              pat_list: [{(tmpfs)}]
                              action: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LeftVar name:TMPFS_MTPTS)
                                      rhs: 
                                        {
                                          (DQ ($ VSub_Name "$MTPT") (" ") ($ VSub_Name "$TMPFS_MTPTS"))
                                        }
                                      spids: [222]
                                    )
                                  ]
                                  spids: [222]
                                )
                              spids: [218 219 230 -1]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other "*")}]
                              action: 
                                (If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (Sentence
                                          command: 
                                            (Pipeline
                                              children: [
                                                (C {(echo)} {(DQ ($ VSub_Name "$PROTECTED_MOUNTS"))})
                                                (C {(grep)} {(-qs)} 
                                                  {(DQ ("^") ($ VSub_Name "$DEV") (" "))}
                                                )
                                              ]
                                              negated: False
                                            )
                                          terminator: <Op_Semi ";">
                                        )
                                      action: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LeftVar name:WEAK_MTPTS)
                                              rhs: 
                                                {
                                                  (DQ ($ VSub_Name "$MTPT") (" ") 
                                                    ($ VSub_Name "$WEAK_MTPTS")
                                                  )
                                                }
                                              spids: [261]
                                            )
                                          ]
                                          spids: [261]
                                        )
                                      spids: [-1 258]
                                    )
                                  ]
                                  else_action: 
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LeftVar name:REG_MTPTS)
                                          rhs: 
                                            {
                                              (DQ ($ VSub_Name "$MTPT") (" ") 
                                                ($ VSub_Name "$REG_MTPTS")
                                              )
                                            }
                                          spids: [272]
                                        )
                                      ]
                                      spids: [272]
                                    )
                                  spids: [269 280]
                                )
                              spids: [233 234 283 -1]
                            )
                          ]
                          spids: [187 193 286]
                        )
                      ]
                    )
                  spids: [112 289]
                )
              redirects: [(Redirect op_id:Redir_Less arg_word:{(/proc/mounts)} fd:-1 spids:[291])]
            )
            (If
              arms: [
                (if_arm
                  cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$TMPFS_MTPTS"))} {(Lit_Other "]")})
                  action: 
                    (If
                      arms: [
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} {(Lit_Other "=")} {(no)} 
                              {(Lit_Other "]")}
                            )
                          action: 
                            (CommandList
                              children: [
                                (C {(log_action_begin_msg)} {(DQ ("Unmounting temporary filesystems"))})
                                (C {(fstab-decode)} {(umount)} {($ VSub_Name "$TMPFS_MTPTS")})
                                (C {(log_action_end_msg)} {($ VSub_QMark "$?")})
                              ]
                            )
                          spids: [-1 346]
                        )
                      ]
                      else_action: 
                        (CommandList
                          children: [
                            (C {(log_daemon_msg)} {(DQ ("Will now unmount temporary filesystems"))})
                            (C {(fstab-decode)} {(umount)} {(-v)} {($ VSub_Name "$TMPFS_MTPTS")})
                            (C {(log_end_msg)} {($ VSub_QMark "$?")})
                          ]
                        )
                      spids: [368 392]
                    )
                  spids: [-1 328]
                )
              ]
              spids: [-1 395]
            )
            (If
              arms: [
                (if_arm
                  cond: 
                    (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} {(Lit_Other "=")} {(no)} 
                      {(Lit_Other "]")}
                    )
                  action: 
                    (CommandList
                      children: [
                        (C {(log_action_begin_msg)} {(DQ ("Deactivating swap"))})
                        (SimpleCommand
                          words: [{(swapoff)} {(-a)}]
                          redirects: [
                            (Redirect
                              op_id: Redir_Great
                              arg_word: {(/dev/null)}
                              fd: -1
                              spids: [440]
                            )
                          ]
                        )
                        (C {(log_action_end_msg)} {($ VSub_QMark "$?")})
                      ]
                    )
                  spids: [-1 426]
                )
              ]
              else_action: 
                (CommandList
                  children: [
                    (C {(log_daemon_msg)} {(DQ ("Will now deactivate swap"))})
                    (C {(swapoff)} {(-a)} {(-v)})
                    (C {(log_end_msg)} {($ VSub_QMark "$?")})
                  ]
                )
              spids: [449 471]
            )
            (If
              arms: [
                (if_arm
                  cond: 
                    (Sentence
                      command: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$WEAK_MTPTS"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  action: 
                    (If
                      arms: [
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} {(Lit_Other "=")} {(no)} 
                              {(Lit_Other "]")}
                            )
                          action: 
                            (CommandList
                              children: [
                                (C {(log_action_begin_msg)} {(DQ ("Unmounting weak filesystems"))})
                                (C {(fstab-decode)} {(umount)} {(-r)} {(-d)} {($ VSub_Name "$WEAK_MTPTS")})
                                (C {(log_action_end_msg)} {($ VSub_QMark "$?")})
                              ]
                            )
                          spids: [-1 520]
                        )
                      ]
                      else_action: 
                        (CommandList
                          children: [
                            (C {(log_daemon_msg)} {(DQ ("Will now unmount weak filesystems"))})
                            (C {(fstab-decode)} {(umount)} {(-v)} {(-r)} {(-d)} 
                              {($ VSub_Name "$WEAK_MTPTS")}
                            )
                            (C {(log_end_msg)} {($ VSub_QMark "$?")})
                          ]
                        )
                      spids: [546 574]
                    )
                  spids: [-1 498]
                )
              ]
              spids: [-1 577]
            )
            (If
              arms: [
                (if_arm
                  cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$REG_MTPTS"))} {(Lit_Other "]")})
                  action: 
                    (If
                      arms: [
                        (if_arm
                          cond: 
                            (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$VERBOSE"))} {(Lit_Other "=")} {(no)} 
                              {(Lit_Other "]")}
                            )
                          action: 
                            (CommandList
                              children: [
                                (C {(log_action_begin_msg)} {(DQ ("Unmounting local filesystems"))})
                                (C {(fstab-decode)} {(umount)} {(-f)} {(-r)} {(-d)} 
                                  {($ VSub_Name "$REG_MTPTS")}
                                )
                                (C {(log_action_end_msg)} {($ VSub_QMark "$?")})
                              ]
                            )
                          spids: [-1 609]
                        )
                      ]
                      else_action: 
                        (CommandList
                          children: [
                            (C {(log_daemon_msg)} {(DQ ("Will now unmount local filesystems"))})
                            (C {(fstab-decode)} {(umount)} {(-f)} {(-v)} {(-r)} {(-d)} 
                              {($ VSub_Name "$REG_MTPTS")}
                            )
                            (C {(log_end_msg)} {($ VSub_QMark "$?")})
                          ]
                        )
                      spids: [637 667]
                    )
                  spids: [-1 591]
                )
              ]
              spids: [-1 670]
            )
          ]
          spids: [60]
        )
      spids: [55 59]
    )
    (Case
      to_match: {(DQ ($ VSub_Number "$1"))}
      arms: [
        (case_arm pat_list:[{(start)}] action:(NoOp) spids:[684685692-1])
        (case_arm
          pat_list: [{(restart)} {(reload)} {(force-reload)}]
          action: 
            (CommandList
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ("Error: argument '") ($ VSub_Number "$1") ("' not supported"))}]
                  redirects: [(Redirect op_id:Redir_GreatAnd arg_word:{(2)} fd:-1 spids:[711])]
                )
                (C {(exit)} {(3)})
              ]
            )
          spids: [695 700 720 -1]
        )
        (case_arm pat_list:[{(stop)}] action:(C {(do_stop)}) spids:[723724730-1])
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: 
            (CommandList
              children: [
                (SimpleCommand
                  words: [{(echo)} {(DQ ("Usage: ") ($ VSub_Number "$0") (" start|stop"))}]
                  redirects: [(Redirect op_id:Redir_GreatAnd arg_word:{(2)} fd:-1 spids:[745])]
                )
                (C {(exit)} {(3)})
              ]
            )
          spids: [733 734 754 -1]
        )
      ]
      spids: [675 681 756]
    )
    (C {(Lit_Other ":")})
  ]
)