(CommandList
  children: [
    (BraceGroup
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[71])]
          spids: [71]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_EqualTilde
                          left: {($ VSub_Number '$1')}
                          right: 
                            {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') 
                              (Lit_Other '+') (Lit_Other '$')
                            }
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INPUT)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [98]
                    )
                  ]
                  spids: [98]
                )
              ]
              spids: [16777215 95]
            )
          ]
          spids: [16777215 102]
        )
        (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)})
        (C {(G_CHECK_ROOT_USER)})
        (C {(G_CHECK_ROOTFS_RW)})
        (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Cleaner>)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FP_TEMP)
              op: Equal
              rhs: {(DQ (/tmp/.dietpi-cleaner))}
              spids: [146]
            )
          ]
          spids: [146]
        )
        (FuncDef
          name: Banner_Cleaning
          body: 
            (BraceGroup
              children: [
                (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') (n) (Lit_Other '\\') (n))})
                (C {(echo)} {(-e)} 
                  {
                    (DQ (Lit_Other '\\') 
                      (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                      ) (Lit_Other '\\') ('e[0m') (Lit_Other '\\') (n) (Lit_Other '\\') ('e[1mDietPi-Cleaner') (Lit_Other '\\') 
                      ('e[0m') (Lit_Other '\\') ('n - ') ($ VSub_Name '$INFO_CLEAN_NAME') (Lit_Other '\\') (n) (Lit_Other '\\') 
                      (
'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80'
                      ) (Lit_Other '\\') ('e[0m')
                    )
                  }
                )
              ]
              spids: [168]
            )
          spids: [165 168]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:WHIP_BACKTITLE)
              op: Equal
              rhs: {(SQ <'- DietPi-Cleaner -'>)}
              spids: [232]
            )
          ]
          spids: [232]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:WHIP_TITLE)
              op: Equal
              rhs: {($ VSub_Name '$WHIP_BACKTITLE')}
              spids: [238]
            )
          ]
          spids: [238]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:WHIP_QUESTION) op:Equal rhs:{(0)} spids:[242])]
          spids: [242]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[246])]
          spids: [246]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[250])]
          spids: [250]
        )
        (FuncDef
          name: Menu_Exit
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {(SQ <'Exit DietPi-Cleaner?'>)}
                      spids: [261]
                    )
                  ]
                  spids: [261]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_QUESTION)
                      op: Equal
                      rhs: {(SQ <'Exit DietPi-Cleaner?'>)}
                      spids: [267]
                    )
                  ]
                  spids: [267]
                )
                (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} 
                  {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} 
                  {(DQ (Back))} {(--defaultno)} {(9)} {(55)}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [312]
                    )
                  ]
                  spids: [312]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TARGETMENUID)
                              op: Equal
                              rhs: {(-1)}
                              spids: [337]
                            )
                          ]
                          spids: [337]
                        )
                      ]
                      spids: [16777215 330]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGETMENUID)
                          op: Equal
                          rhs: {(0)}
                          spids: [348]
                        )
                      ]
                      spids: [348]
                    )
                  ]
                  spids: [341 352]
                )
              ]
              spids: [258]
            )
          spids: [255 258]
        )
        (FuncDef
          name: Menu_Main
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {($ VSub_Name '$WHIP_BACKTITLE')}
                      spids: [370]
                    )
                  ]
                  spids: [370]
                )
                (C {(Update_Space_Used)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [383]
                    )
                  ]
                  spids: [383]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_QUESTION)
                      op: Equal
                      rhs: 
                        {
                          (DQ ('Free up used space and system resources:') (Lit_Other '\\') 
                            ('n - RootFS usage current = ') ($ VSub_Name '$ROOT_SPACE_USED_CURRENT') (' MB') (Lit_Other '\\') ('n - RootFS space cleared = ') 
                            ($ VSub_Name '$ROOT_SPACE_FREE_DELTA') (' MB')
                          )
                        }
                      spids: [387]
                    )
                  ]
                  spids: [387]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--title)}
                                      {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                      {(--backtitle)}
                                      {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                      {(--menu)}
                                      {(DQ ($ VSub_Name '$WHIP_QUESTION'))}
                                      {(--cancel-button)}
                                      {(DQ (Exit))}
                                      {(15)}
                                      {(75)}
                                      {(5)}
                                      {(DQ (Help))}
                                      {(DQ ('What does DietPi-Cleaner do?'))}
                                      {(DQ (Cleaners))}
                                      {(DQ ('Control which cleaners are enabled.'))}
                                      {(DQ (' - Files'))}
                                      {(DQ ('Set file cleaner options.'))}
                                      {(DQ (Test))}
                                      {
                                        (DQ 
                                          (
'Simulate the cleaning process, without modifying any data.'
                                          )
                                        )
                                      }
                                      {(DQ (Run))}
                                      {(DQ ('Run enabled cleaners.'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [486]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [489]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [492]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [403 494]
                          )
                        }
                      spids: [402]
                    )
                  ]
                  spids: [402]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [498]
                    )
                  ]
                  spids: [498]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Case
                          to_match: {(DQ ($ VSub_Name '$OPTION'))}
                          arms: [
                            (case_arm
                              pat_list: [{(Help)}]
                              action: [
                                (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner Help'))} {(--msgbox)} 
                                  {
                                    (DQ 
                                      (
'DietPi-Cleaner is a program that allows you to remove unwanted junk from your DietPi system, freeing up filesystem space in the process.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                      (
'nSimply enable the cleaners you require, then select Test to see what will happen, without modifying your system.'
                                      ) (Lit_Other '\\') ('nOnce your satisfied with the Test results, select Run to clean your system.') 
                                      (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information:') (Lit_Other '\\') 
                                      (
'n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=623#p623'
                                      )
                                    )
                                  } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(16)} {(75)}
                                )
                              ]
                              spids: [528 529 569 16777215]
                            )
                            (case_arm
                              pat_list: [{(DQ (' - Files'))}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:TARGETMENUID)
                                      op: Equal
                                      rhs: {(2)}
                                      spids: [578]
                                    )
                                  ]
                                  spids: [578]
                                )
                              ]
                              spids: [573 575 582 16777215]
                            )
                            (case_arm
                              pat_list: [{(Cleaners)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:TARGETMENUID)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [589]
                                    )
                                  ]
                                  spids: [589]
                                )
                              ]
                              spids: [585 586 593 16777215]
                            )
                            (case_arm
                              pat_list: [{(Test)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:DRY_RUN)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [604]
                                    )
                                  ]
                                  spids: [604]
                                )
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:at_least_one_cleaner_is_enabled)
                                      op: Equal
                                      rhs: {(0)}
                                      spids: [614]
                                    )
                                  ]
                                  spids: [612]
                                )
                                (ForExpr
                                  init: 
                                    (BinaryAssign
                                      op_id: Arith_Equal
                                      left: (LhsName name:i)
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  cond: 
                                    (ArithBinary
                                      op_id: Arith_Less
                                      left: (ArithVarRef name:i)
                                      right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                                    )
                                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                                  body: 
                                    (DoGroup
                                      children: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (DParen
                                                      child: 
                                                        (ArithBinary
                                                          op_id: Arith_DEqual
                                                          left: 
                                                            (ArithWord
                                                              w: 
                                                                {
                                                                  (BracedVarSub
                                                                    token: 
                                                                      <VSub_Name aEnabledCleaners>
                                                                    bracket_op: 
                                                                      (ArrayIndex
                                                                        expr: 
                                                                          (ArithWord
                                                                            w: {($ VSub_Name '$i')}
                                                                          )
                                                                      )
                                                                    spids: [644 649]
                                                                  )
                                                                }
                                                            )
                                                          right: (ArithWord w:{(Lit_Digits 1)})
                                                        )
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (LhsName
                                                          name: at_least_one_cleaner_is_enabled
                                                        )
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [662]
                                                    )
                                                  ]
                                                  spids: [662]
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [16777215 659]
                                            )
                                          ]
                                          spids: [16777215 669]
                                        )
                                      ]
                                      spids: [637 672]
                                    )
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          ($ VSub_Name 
'$at_least_one_cleaner_is_enabled'
                                                          )
                                                        }
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(whiptail)} {(--title)} {(DQ ('Run DietPi-Cleaner?'))} 
                                          {(--yesno)} 
                                          {
                                            (DQ 
                                              (
'DietPi-Cleaner will now simulate your enabled cleaners.'
                                              ) (Lit_Other '\\') (n) (Lit_Other '\\') ('n(Notice): No data will be modified.') (Lit_Other '\\') (n) 
                                              (Lit_Other '\\') ('nContinue with test run?')
                                            )
                                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--defaultno)} {(12)} {(70)}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:CHOICE)
                                              op: Equal
                                              rhs: {($ VSub_QMark '$?')}
                                              spids: [732]
                                            )
                                          ]
                                          spids: [732]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (DParen
                                                      child: 
                                                        (ArithBinary
                                                          op_id: Arith_DEqual
                                                          left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                          right: (ArithWord w:{(Lit_Digits 0)})
                                                        )
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [(C {(Run_Cleaners)})]
                                              spids: [16777215 750]
                                            )
                                          ]
                                          spids: [16777215 756]
                                        )
                                      ]
                                      spids: [16777215 690]
                                    )
                                  ]
                                  else_action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('No cleaner jobs enabled'))} 
                                      {(--msgbox)} 
                                      {
                                        (DQ 
                                          (
'DietPi-Cleaner could not be run as there are no enabled cleaners. Please go to cleaners, then select which you would like to enable.'
                                          )
                                        )
                                      } {(10)} {(70)}
                                    )
                                  ]
                                  spids: [759 781]
                                )
                              ]
                              spids: [596 597 784 16777215]
                            )
                            (case_arm
                              pat_list: [{(Run)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:DRY_RUN)
                                      op: Equal
                                      rhs: {(0)}
                                      spids: [795]
                                    )
                                  ]
                                  spids: [795]
                                )
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:at_least_one_cleaner_is_enabled)
                                      op: Equal
                                      rhs: {(0)}
                                      spids: [805]
                                    )
                                  ]
                                  spids: [803]
                                )
                                (ForExpr
                                  init: 
                                    (BinaryAssign
                                      op_id: Arith_Equal
                                      left: (LhsName name:i)
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  cond: 
                                    (ArithBinary
                                      op_id: Arith_Less
                                      left: (ArithVarRef name:i)
                                      right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                                    )
                                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                                  body: 
                                    (DoGroup
                                      children: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (DParen
                                                      child: 
                                                        (ArithBinary
                                                          op_id: Arith_DEqual
                                                          left: 
                                                            (ArithWord
                                                              w: 
                                                                {
                                                                  (BracedVarSub
                                                                    token: 
                                                                      <VSub_Name aEnabledCleaners>
                                                                    bracket_op: 
                                                                      (ArrayIndex
                                                                        expr: 
                                                                          (ArithWord
                                                                            w: {($ VSub_Name '$i')}
                                                                          )
                                                                      )
                                                                    spids: [835 840]
                                                                  )
                                                                }
                                                            )
                                                          right: (ArithWord w:{(Lit_Digits 1)})
                                                        )
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (LhsName
                                                          name: at_least_one_cleaner_is_enabled
                                                        )
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [853]
                                                    )
                                                  ]
                                                  spids: [853]
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Break break>
                                                )
                                              ]
                                              spids: [16777215 850]
                                            )
                                          ]
                                          spids: [16777215 860]
                                        )
                                      ]
                                      spids: [828 863]
                                    )
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          ($ VSub_Name 
'$at_least_one_cleaner_is_enabled'
                                                          )
                                                        }
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(whiptail)} {(--title)} {(DQ ('Run DietPi-Cleaner?'))} 
                                          {(--yesno)} 
                                          {
                                            (DQ 
                                              (
'DietPi-Cleaner will now run your enabled cleaners.'
                                              ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                              (
'n(Notice): If you are unsure what this program will do, I would recommend creating a backup with dietpi-backup before proceeding.'
                                              ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nWould you like to continue and start the cleaning process?')
                                            )
                                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--defaultno)} {(13)} {(70)}
                                        )
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:CHOICE)
                                              op: Equal
                                              rhs: {($ VSub_QMark '$?')}
                                              spids: [923]
                                            )
                                          ]
                                          spids: [923]
                                        )
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (DParen
                                                      child: 
                                                        (ArithBinary
                                                          op_id: Arith_DEqual
                                                          left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                          right: (ArithWord w:{(Lit_Digits 0)})
                                                        )
                                                    )
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [(C {(Run_Cleaners)})]
                                              spids: [16777215 941]
                                            )
                                          ]
                                          spids: [16777215 947]
                                        )
                                      ]
                                      spids: [16777215 881]
                                    )
                                  ]
                                  else_action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('No cleaner jobs enabled'))} 
                                      {(--msgbox)} 
                                      {
                                        (DQ 
                                          (
'DietPi-Cleaner could not be run as there are no enabled cleaners. Please go to cleaners, then select which you would like to enable.'
                                          )
                                        )
                                      } {(10)} {(70)}
                                    )
                                  ]
                                  spids: [950 972]
                                )
                              ]
                              spids: [787 788 975 16777215]
                            )
                          ]
                          spids: [519 525 978]
                        )
                      ]
                      spids: [16777215 516]
                    )
                  ]
                  else_action: [(C {(Menu_Exit)})]
                  spids: [981 987]
                )
              ]
              spids: [366]
            )
          spids: [363 366]
        )
        (FuncDef
          name: Menu_Cleaners
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [1010]
                    )
                  ]
                  spids: [1010]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:aWhiptailLine)
                      op: Equal
                      rhs: {(ArrayLiteralPart)}
                      spids: [1021]
                    )
                  ]
                  spids: [1019]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OnOff_Status)
                      op: Equal
                      rhs: {(DQ (on))}
                      spids: [1028]
                    )
                  ]
                  spids: [1026]
                )
                (ForExpr
                  init: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  cond: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                    )
                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:OnOff_Status)
                              op: Equal
                              rhs: {(DQ (on))}
                              spids: [1060]
                            )
                          ]
                          spids: [1060]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name aEnabledCleaners>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{($ VSub_Name '$i')})
                                                      )
                                                    spids: [1070 1075]
                                                  )
                                                }
                                            )
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:OnOff_Status)
                                      op: Equal
                                      rhs: {(DQ (off))}
                                      spids: [1088]
                                    )
                                  ]
                                  spids: [1088]
                                )
                              ]
                              spids: [16777215 1085]
                            )
                          ]
                          spids: [16777215 1094]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:aWhiptailLine)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {(DQ ($ VSub_Name '$i') (' '))}
                                              {
                                                (DQ 
                                                  (
'Dev - Uninstalls all dev packages (eg: git, lib123-dev).'
                                                  )
                                                )
                                              }
                                              {(DQ ($ VSub_Name '$OnOff_Status'))}
                                            ]
                                          )
                                        }
                                      spids: [1119]
                                    )
                                  ]
                                  spids: [1119]
                                )
                              ]
                              spids: [16777215 1116]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:aWhiptailLine)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {(DQ ($ VSub_Name '$i') (' '))}
                                              {(DQ ('Manpages - Removes offline documentation.'))}
                                              {(DQ ($ VSub_Name '$OnOff_Status'))}
                                            ]
                                          )
                                        }
                                      spids: [1153]
                                    )
                                  ]
                                  spids: [1153]
                                )
                              ]
                              spids: [1136 1150]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                          right: (ArithWord w:{(Lit_Digits 2)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:aWhiptailLine)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {(DQ ($ VSub_Name '$i') (' '))}
                                              {
                                                (DQ 
                                                  (
'Files - Scan and remove files matching user include list.'
                                                  )
                                                )
                                              }
                                              {(DQ ($ VSub_Name '$OnOff_Status'))}
                                            ]
                                          )
                                        }
                                      spids: [1187]
                                    )
                                  ]
                                  spids: [1187]
                                )
                              ]
                              spids: [1170 1184]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                          right: (ArithWord w:{(Lit_Digits 3)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:aWhiptailLine)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {(DQ ($ VSub_Name '$i') (' '))}
                                              {
                                                (DQ 
                                                  (
'Logs - Clears the log file directory (/var/log).'
                                                  )
                                                )
                                              }
                                              {(DQ ($ VSub_Name '$OnOff_Status'))}
                                            ]
                                          )
                                        }
                                      spids: [1221]
                                    )
                                  ]
                                  spids: [1221]
                                )
                              ]
                              spids: [1204 1218]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$i')})
                                          right: (ArithWord w:{(Lit_Digits 4)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:aWhiptailLine)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (ArrayLiteralPart
                                            words: [
                                              {(DQ ($ VSub_Name '$i') (' '))}
                                              {
                                                (DQ 
                                                  (
'Apt - Clears the apt cache and runs a fresh update.'
                                                  )
                                                )
                                              }
                                              {(DQ ($ VSub_Name '$OnOff_Status'))}
                                            ]
                                          )
                                        }
                                      spids: [1255]
                                    )
                                  ]
                                  spids: [1255]
                                )
                              ]
                              spids: [1238 1252]
                            )
                          ]
                          else_action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:aWhiptailLine)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(DQ ('New '))}
                                          {(DQ (Unknown))}
                                          {(DQ ($ VSub_Name '$OnOff_Status'))}
                                        ]
                                      )
                                    }
                                  spids: [1275]
                                )
                              ]
                              spids: [1275]
                            )
                          ]
                          spids: [1272 1291]
                        )
                      ]
                      spids: [1053 1295]
                    )
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {(SQ <'- Options : Cleaner Selection -'>)}
                      spids: [1299]
                    )
                  ]
                  spids: [1299]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_QUESTION)
                      op: Equal
                      rhs: {(SQ <'Please use the spacebar to toggle which cleaners are enabled.'>)}
                      spids: [1305]
                    )
                  ]
                  spids: [1305]
                )
                (SimpleCommand
                  words: [
                    {(whiptail)}
                    {(--title)}
                    {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                    {(--checklist)}
                    {(DQ ($ VSub_Name '$WHIP_QUESTION'))}
                    {(--backtitle)}
                    {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                    {(--separate-output)}
                    {(14)}
                    {(75)}
                    {(5)}
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name aWhiptailLine>
                          bracket_op: (WholeArray op_id:Lit_At)
                          spids: [1340 1345]
                        )
                      )
                    }
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 2
                      arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                      spids: [1348]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [1355]
                    )
                  ]
                  spids: [1355]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (ForExpr
                          init: 
                            (BinaryAssign
                              op_id: Arith_Equal
                              left: (LhsName name:i)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          cond: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithVarRef name:i)
                              right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                            )
                          update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                          body: 
                            (DoGroup
                              children: [
                                (C 
                                  {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') 
                                    (Lit_Other ']') (Lit_Other '=') (0)
                                  }
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: 
                                                    (ArithWord
                                                      w: 
                                                        {
                                                          (CommandSubPart
                                                            command_list: 
                                                              (CommandList
                                                                children: [
                                                                  (Pipeline
                                                                    children: [
                                                                      (C {(cat)} 
                                                                        {
                                                                          (DQ 
                                                                            ($ VSub_Name '$FP_TEMP')
                                                                          )
                                                                        }
                                                                      )
                                                                      (C {(grep)} {(-ci)} {(-m1)} 
                                                                        {
                                                                          (DQ ($ VSub_Name '$i') (' '))
                                                                        }
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                                ]
                                                              )
                                                            left_token: <Left_CommandSub '$('>
                                                            spids: [1412 1431]
                                                          )
                                                        }
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C 
                                          {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') 
                                            (Lit_Other ']') (Lit_Other '=') (1)
                                          }
                                        )
                                      ]
                                      spids: [16777215 1441]
                                    )
                                  ]
                                  spids: [16777215 1452]
                                )
                              ]
                              spids: [1397 1456]
                            )
                        )
                      ]
                      spids: [16777215 1374]
                    )
                  ]
                  spids: [16777215 1460]
                )
                (Sentence
                  child: (C {(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))})
                  terminator: <Op_Amp '&'>
                )
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [1475]
                    )
                  ]
                )
                (C {(unset)} {(aWhiptailLine)})
              ]
              spids: [1002]
            )
          spids: [999 1002]
        )
        (FuncDef
          name: Menu_Options_Files
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [1510]
                    )
                  ]
                  spids: [1510]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:option_1_text)
                      op: Equal
                      rhs: {(DQ ('Include mount directory (/mnt/*) during file scan'))}
                      spids: [1517]
                    )
                  ]
                  spids: [1515]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:include_mnt_status)
                      op: Equal
                      rhs: {(DQ (Disabled))}
                      spids: [1525]
                    )
                  ]
                  spids: [1523]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:include_mnt_status)
                              op: Equal
                              rhs: {(DQ (Enabled))}
                              spids: [1548]
                            )
                          ]
                          spids: [1548]
                        )
                      ]
                      spids: [16777215 1545]
                    )
                  ]
                  spids: [16777215 1554]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:option_2_text)
                      op: Equal
                      rhs: {(DQ ('Modify filenames/extensions to include during scan.'))}
                      spids: [1560]
                    )
                  ]
                  spids: [1558]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_QUESTION)
                      op: Equal
                      rhs: 
                        {
                          (DQ ('Files: Cleaner options.') (Lit_Other '\\') 
                            ("n(NB) The cleaner named 'Files' must be enabled for this to work.")
                          )
                        }
                      spids: [1567]
                    )
                  ]
                  spids: [1567]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_TITLE)
                      op: Equal
                      rhs: {(SQ <'- Files: Cleaner options -'>)}
                      spids: [1575]
                    )
                  ]
                  spids: [1575]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--title)}
                                      {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                      {(--backtitle)}
                                      {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                      {(--menu)}
                                      {(DQ ($ VSub_Name '$WHIP_QUESTION'))}
                                      {(--cancel-button)}
                                      {(DQ (Exit))}
                                      {(12)}
                                      {(68)}
                                      {(2)}
                                      {(DQ ($ VSub_Name '$option_1_text'))}
                                      {(DQ (': ') ($ VSub_Name '$include_mnt_status'))}
                                      {(DQ ($ VSub_Name '$option_2_text'))}
                                      {(DQ )}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [1636]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [1639]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [1642]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1583 1644]
                          )
                        }
                      spids: [1582]
                    )
                  ]
                  spids: [1582]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [1648]
                    )
                  ]
                  spids: [1648]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Case
                          to_match: {(DQ ($ VSub_Name '$OPTION'))}
                          arms: [
                            (case_arm
                              pat_list: [{(DQ ($ VSub_Name '$option_1_text'))}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')})
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:INCLUDE_MNT)
                                              op: Equal
                                              rhs: {(0)}
                                              spids: [1701]
                                            )
                                          ]
                                          spids: [1701]
                                        )
                                      ]
                                      spids: [16777215 1698]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:INCLUDE_MNT)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [1708]
                                        )
                                      ]
                                      spids: [1708]
                                    )
                                  ]
                                  spids: [1705 1712]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:TARGETMENUID)
                                      op: Equal
                                      rhs: {(2)}
                                      spids: [1715]
                                    )
                                  ]
                                  spids: [1715]
                                )
                              ]
                              spids: [1679 1681 1719 16777215]
                            )
                            (case_arm
                              pat_list: [{(DQ ($ VSub_Name '$option_2_text'))}]
                              action: [
                                (C {(nano)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))})
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:TARGETMENUID)
                                      op: Equal
                                      rhs: {(2)}
                                      spids: [1735]
                                    )
                                  ]
                                  spids: [1735]
                                )
                              ]
                              spids: [1723 1725 1739 16777215]
                            )
                          ]
                          spids: [1669 1675 1742]
                        )
                      ]
                      spids: [16777215 1666]
                    )
                  ]
                  spids: [16777215 1745]
                )
              ]
              spids: [1502]
            )
          spids: [1499 1502]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ROOT_SPACE_USED_BEFORE)
              op: Equal
              rhs: {(0)}
              spids: [1769]
            )
          ]
          spids: [1769]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ROOT_SPACE_USED_AFTER)
              op: Equal
              rhs: {(0)}
              spids: [1773]
            )
          ]
          spids: [1773]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ROOT_SPACE_USED_CURRENT)
              op: Equal
              rhs: {(0)}
              spids: [1777]
            )
          ]
          spids: [1777]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ROOT_SPACE_FREE_DELTA)
              op: Equal
              rhs: {(DQ ('Cleaner has not been run - 0'))}
              spids: [1781]
            )
          ]
          spids: [1781]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:ROOTFS_DEVICE_PATH)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(sed)} {(-n)} {(4p)} {(/DietPi/dietpi/.hw_model)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [1788 1796]
                  )
                }
              spids: [1787]
            )
          ]
          spids: [1787]
        )
        (FuncDef
          name: Update_Space_Used
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ROOT_SPACE_USED_CURRENT)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(df)} {(--block-size)} {(MB)})
                                      (C {(grep)} {(DQ ($ VSub_Name '$ROOTFS_DEVICE_PATH'))})
                                      (C {(awk)} {(SQ <'{ print $3 }'>)})
                                      (C {(tr)} {(-d)} {(SQ <MB>)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [1808 1840]
                          )
                        }
                      spids: [1807]
                    )
                  ]
                  spids: [1807]
                )
              ]
              spids: [1803]
            )
          spids: [1800 1803]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:MAX_CLEANERS) op:Equal rhs:{(5)} spids:[1859])]
          spids: [1859]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:aEnabledCleaners)
              op: Equal
              rhs: {(ArrayLiteralPart)}
              spids: [1863]
            )
          ]
          spids: [1863]
        )
        (ForExpr
          init: 
            (BinaryAssign
              op_id: Arith_Equal
              left: (LhsName name:i)
              right: (ArithWord w:{(Lit_Digits 0)})
            )
          cond: 
            (ArithBinary
              op_id: Arith_Less
              left: (ArithVarRef name:i)
              right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
            )
          update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
          body: 
            (DoGroup
              children: [
                (C 
                  {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') 
                    (Lit_Other '=') (0)
                  }
                )
              ]
              spids: [1887 1898]
            )
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:INCLUDE_MNT) op:Equal rhs:{(0)} spids:[1902])]
          spids: [1902]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:DRY_RUN) op:Equal rhs:{(0)} spids:[1906])]
          spids: [1906]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:INFO_CLEAN_NAME) op:Equal rhs:{(DQ )} spids:[1911])]
          spids: [1911]
        )
        (FuncDef
          name: Run_Cleaners
          body: 
            (BraceGroup
              children: [
                (C {(/DietPi/dietpi/dietpi-services)} {(stop)})
                (C {(Update_Space_Used)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ROOT_SPACE_USED_BEFORE)
                      op: Equal
                      rhs: {($ VSub_Name '$ROOT_SPACE_USED_CURRENT')}
                      spids: [1937]
                    )
                  ]
                  spids: [1937]
                )
                (ForExpr
                  init: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  cond: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                    )
                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: 
                                            (ArithWord
                                              w: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name aEnabledCleaners>
                                                    bracket_op: 
                                                      (ArrayIndex
                                                        expr: (ArithWord w:{($ VSub_Name '$i')})
                                                      )
                                                    spids: [1972 1977]
                                                  )
                                                }
                                            )
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Run_Cleaner_) (DQ ($ VSub_Name '$i'))})]
                              spids: [16777215 1987]
                            )
                          ]
                          spids: [16777215 1996]
                        )
                      ]
                      spids: [1965 1999]
                    )
                )
                (C {(Update_Space_Used)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ROOT_SPACE_USED_AFTER)
                      op: Equal
                      rhs: {($ VSub_Name '$ROOT_SPACE_USED_CURRENT')}
                      spids: [2006]
                    )
                  ]
                  spids: [2006]
                )
                (C {(/DietPi/dietpi/dietpi-services)} {(start)})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ROOT_SPACE_FREE_DELTA)
                      op: Equal
                      rhs: 
                        {
                          (ArithSubPart
                            anode: 
                              (ArithBinary
                                op_id: Arith_Minus
                                left: (ArithWord w:{($ VSub_Name '$ROOT_SPACE_USED_BEFORE')})
                                right: (ArithWord w:{($ VSub_Name '$ROOT_SPACE_USED_AFTER')})
                              )
                            spids: [2026 2035]
                          )
                        }
                      spids: [2025]
                    )
                  ]
                  spids: [2025]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:WHIP_QUESTION)
                      op: Equal
                      rhs: 
                        {
                          (DQ ('DietPi-Cleaner has finished cleaning RootFS:') (Lit_Other '\\') 
                            ('n - ') ($ VSub_Name '$ROOT_SPACE_FREE_DELTA') (' MB of space has been cleared.')
                          )
                        }
                      spids: [2039]
                    )
                  ]
                  spids: [2039]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$INPUT')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner completed.'))} {(--msgbox)} 
                          {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(10)} {(70)}
                        )
                      ]
                      spids: [16777215 2063]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$INPUT')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(echo)} {(-e)} 
                          {
                            (DQ (Lit_Other '\\') (n) ($ VSub_Name '$WHIP_QUESTION') (Lit_Other '\\') (n))
                          }
                        )
                      ]
                      spids: [2085 2099]
                    )
                  ]
                  spids: [16777215 2115]
                )
              ]
              spids: [1920]
            )
          spids: [1917 1920]
        )
        (FuncDef
          name: Run_Cleaner_0
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INFO_CLEAN_NAME)
                      op: Equal
                      rhs: {(DQ ('Dev packages'))}
                      spids: [2134]
                    )
                  ]
                  spids: [2134]
                )
                (C {(Banner_Cleaning)})
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:string_package_names)
                      op: Equal
                      rhs: {(DQ )}
                      spids: [2146]
                    )
                  ]
                  spids: [2144]
                )
                (While
                  cond: [(C {(read)} {(line)})]
                  body: 
                    (DoGroup
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:string_package_names)
                              op: PlusEqual
                              rhs: {(DQ ($ VSub_Name '$line') (' '))}
                              spids: [2165]
                            )
                          ]
                          spids: [2165]
                        )
                      ]
                      spids: [2158 2173]
                    )
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(dpkg)} {(-l)})
                                      (C {(grep)} {(SQ <'\\-dev:'>)})
                                      (C {(awk)} {(SQ <'{ print $2 }'>)})
                                      (C {(cut)} {(-f1)} {(-d) (DQ (':'))})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_ProcSubIn '<('>
                            spids: [2177 2208]
                          )
                        }
                      spids: [2175]
                    )
                  ]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:string_package_names)
                      op: PlusEqual
                      rhs: {(DQ ('build-essential git'))}
                      spids: [2216]
                    )
                  ]
                  spids: [2216]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:Yes_or_Simulate)
                      op: Equal
                      rhs: {(DQ (-y))}
                      spids: [2229]
                    )
                  ]
                  spids: [2227]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:Yes_or_Simulate)
                              op: Equal
                              rhs: {(DQ (-s))}
                              spids: [2252]
                            )
                          ]
                          spids: [2252]
                        )
                      ]
                      spids: [16777215 2249]
                    )
                  ]
                  spids: [16777215 2258]
                )
                (C {(apt-get)} {(purge)} {($ VSub_Name '$string_package_names')} 
                  {($ VSub_Name '$Yes_or_Simulate')}
                )
                (C {(apt-get)} {(autoremove)} {(--purge)} {($ VSub_Name '$Yes_or_Simulate')})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(sed)} {(-i)} 
                          {(DQ ('/BUILDESSENTIAL=/c') (Lit_Other '\\') ('BUILDESSENTIAL=0'))} {(/DietPi/dietpi/.installed)}
                        )
                        (C {(sed)} {(-i)} {(DQ ('/GITCLIENT=/c') (Lit_Other '\\') ('GITCLIENT=0'))} 
                          {(/DietPi/dietpi/.installed)}
                        )
                      ]
                      spids: [16777215 2299]
                    )
                  ]
                  spids: [16777215 2328]
                )
              ]
              spids: [2130]
            )
          spids: [2127 2130]
        )
        (FuncDef
          name: Run_Cleaner_1
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INFO_CLEAN_NAME)
                      op: Equal
                      rhs: {(DQ ('Man pages and docs'))}
                      spids: [2347]
                    )
                  ]
                  spids: [2347]
                )
                (C {(Banner_Cleaning)})
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:Yes_or_Simulate)
                      op: Equal
                      rhs: {(DQ (-y))}
                      spids: [2359]
                    )
                  ]
                  spids: [2357]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:Yes_or_Simulate)
                              op: Equal
                              rhs: {(DQ (-s))}
                              spids: [2382]
                            )
                          ]
                          spids: [2382]
                        )
                      ]
                      spids: [16777215 2379]
                    )
                  ]
                  spids: [16777215 2388]
                )
                (C {(apt-get)} {(purge)} {(man)} {(manpages)} {($ VSub_Name '$Yes_or_Simulate')})
                (C {(apt-get)} {(autoremove)} {(--purge)} {($ VSub_Name '$Yes_or_Simulate')})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(rm)} {(-R)} {(/usr/share/man)})
                        (C {(rm)} {(-R)} {(/usr/share/doc)})
                        (C {(rm)} {(-R)} {(/usr/share/doc-base)})
                      ]
                      spids: [16777215 2431]
                    )
                  ]
                  spids: [16777215 2455]
                )
              ]
              spids: [2343]
            )
          spids: [2340 2343]
        )
        (FuncDef
          name: Run_Cleaner_2
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INFO_CLEAN_NAME)
                      op: Equal
                      rhs: {(DQ (Files))}
                      spids: [2474]
                    )
                  ]
                  spids: [2474]
                )
                (C {(Banner_Cleaning)})
                (Pipeline
                  children: [
                    (C {(cat)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))})
                    (C {(sed)} {(SQ <'/#/d'>)})
                    (C {(sed)} {(SQ <'/ /d'>)})
                    (SimpleCommand
                      words: [{(sed)} {(SQ <'/^$/d'>)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                          spids: [2518]
                        )
                      ]
                    )
                  ]
                  negated: F
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:line_count)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [
                                      (C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))})
                                      (C {(wc)} {(-l)})
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2533 2545]
                          )
                        }
                      spids: [2532]
                    )
                  ]
                  spids: [2530]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$line_count')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(echo)} {(-e)} 
                          {
                            (DQ (Lit_Other '\\') 
                              (
'nNo files to find. Have you setup the Files options and added filename entries to match?'
                              ) (Lit_Other '\\') (n)
                            )
                          }
                        )
                      ]
                      spids: [16777215 2562]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:aCustomFiles)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [2589]
                        )
                      ]
                      spids: [2587]
                    )
                    (SimpleCommand
                      words: [{(readarray)} {(aCustomFiles)}]
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                          spids: [2598]
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:find_string)
                          op: Equal
                          rhs: {(DQ )}
                          spids: [2612]
                        )
                      ]
                      spids: [2610]
                    )
                    (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') ('nSearching for filenames matching:'))})
                    (ForExpr
                      init: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                      cond: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithVarRef name:i)
                          right: 
                            (ArithWord
                              w: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name aCustomFiles>
                                    prefix_op: VSub_Pound
                                    bracket_op: (WholeArray op_id:Lit_At)
                                    spids: [2637 2643]
                                  )
                                }
                            )
                        )
                      update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                      body: 
                        (DoGroup
                          children: [
                            (C {(echo)} {(-e)} 
                              {
                                (DQ ('- ') 
                                  (BracedVarSub
                                    token: <VSub_Name aCustomFiles>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                    spids: [2661 2666]
                                  )
                                )
                              }
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$i')})
                                              right: (ArithWord w:{(Lit_Digits 0)})
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:find_string)
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ('-name ') 
                                                (BracedVarSub
                                                  token: <VSub_Name aCustomFiles>
                                                  bracket_op: 
                                                    (ArrayIndex
                                                      expr: (ArithWord w:{($ VSub_Name '$i')})
                                                    )
                                                  spids: [2691 2696]
                                                )
                                              )
                                            }
                                          spids: [2688]
                                        )
                                      ]
                                      spids: [2688]
                                    )
                                  ]
                                  spids: [16777215 2685]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:find_string)
                                      op: PlusEqual
                                      rhs: 
                                        {
                                          (DQ (' -or -name ') 
                                            (BracedVarSub
                                              token: <VSub_Name aCustomFiles>
                                              bracket_op: 
                                                (ArrayIndex
                                                  expr: (ArithWord w:{($ VSub_Name '$i')})
                                                )
                                              spids: [2706 2711]
                                            )
                                          )
                                        }
                                      spids: [2703]
                                    )
                                  ]
                                  spids: [2703]
                                )
                              ]
                              spids: [2700 2715]
                            )
                          ]
                          spids: [2652 2719]
                        )
                    )
                    (C {(echo)} {(-e)} {(DQ ('Please wait....'))})
                    (SimpleCommand
                      words: [{(find)} {(/)} {(-type)} {(f)} {($ VSub_Name '$find_string')}]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                          spids: [2747]
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(sed)} {(-i)} {(SQ <'/\\/mnt/d'>)} {(DQ ($ VSub_Name '$FP_TEMP'))})
                          ]
                          spids: [16777215 2773]
                        )
                      ]
                      spids: [16777215 2789]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:line_count)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))})
                                          (C {(wc)} {(-l)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2794 2806]
                              )
                            }
                          spids: [2793]
                        )
                      ]
                      spids: [2793]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$line_count')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} {(-e)} 
                              {
                                (DQ (Lit_Other '\\') ('nNo matching filenames were found.') 
                                  (Lit_Other '\\') (n)
                                )
                              }
                            )
                          ]
                          spids: [16777215 2823]
                        )
                      ]
                      else_action: [
                        (C {(echo)} {(-e)} 
                          {
                            (DQ (Lit_Other '\\') ('nFound the following matching files:') 
                              (Lit_Other '\\') (n)
                            )
                          }
                        )
                      ]
                      spids: [2838 2853]
                    )
                    (While
                      cond: [(C {(read)} {(line)})]
                      body: 
                        (DoGroup
                          children: [
                            (C {(echo)} {(-e)} {(DQ ('- Filepath: ') ($ VSub_Name '$line'))})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                              right: (ArithWord w:{(Lit_Digits 0)})
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(-e)} {(DQ (Deleted.) (Lit_Other '\\') (n))})
                                    (C {(rm)} {(DQ ($ VSub_Name '$line'))})
                                  ]
                                  spids: [16777215 2895]
                                )
                              ]
                              spids: [16777215 2916]
                            )
                          ]
                          spids: [2868 2920]
                        )
                      redirects: [
                        (Redir
                          op_id: Redir_Less
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))}
                          spids: [2922]
                        )
                      ]
                    )
                    (C {(unset)} {(aCustomFiles)})
                  ]
                  spids: [2579 2940]
                )
                (Sentence
                  child: (C {(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))})
                  terminator: <Op_Amp '&'>
                )
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [2951]
                    )
                  ]
                )
              ]
              spids: [2470]
            )
          spids: [2467 2470]
        )
        (FuncDef
          name: Run_Cleaner_3
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INFO_CLEAN_NAME)
                      op: Equal
                      rhs: {(DQ ('Log files'))}
                      spids: [2972]
                    )
                  ]
                  spids: [2972]
                )
                (C {(Banner_Cleaning)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [(C {(/DietPi/dietpi/dietpi-logclear)} {(1)})]
                      spids: [16777215 2996]
                    )
                  ]
                  spids: [16777215 3004]
                )
              ]
              spids: [2968]
            )
          spids: [2965 2968]
        )
        (FuncDef
          name: Run_Cleaner_4
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INFO_CLEAN_NAME)
                      op: Equal
                      rhs: {(DQ ('Apt cache and update'))}
                      spids: [3023]
                    )
                  ]
                  spids: [3023]
                )
                (C {(Banner_Cleaning)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(apt-get)} {(clean)})
                        (C {(rm)} {(/var/lib/apt/lists/) (Lit_Other '*')} {(-vf)})
                        (C {(G_AGUP)})
                      ]
                      spids: [16777215 3047]
                    )
                  ]
                  spids: [16777215 3068]
                )
              ]
              spids: [3019]
            )
          spids: [3016 3019]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FILEPATH_SETTINGS)
              op: Equal
              rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner))}
              spids: [3092]
            )
          ]
          spids: [3092]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:FILEPATH_CUSTOMFILES)
              op: Equal
              rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner_custom_files))}
              spids: [3098]
            )
          ]
          spids: [3098]
        )
        (FuncDef
          name: Read_Settings_File
          body: 
            (BraceGroup
              children: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FILEPATH_SETTINGS'))} 
                              {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:line_count)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (Pipeline
                                            children: [
                                              (C {(cat)} {(DQ ($ VSub_Name '$FILEPATH_SETTINGS'))})
                                              (C {(wc)} {(-l)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [3136 3148]
                                  )
                                }
                              spids: [3135]
                            )
                          ]
                          spids: [3133]
                        )
                        (ForExpr
                          init: 
                            (BinaryAssign
                              op_id: Arith_Equal
                              left: (LhsName name:i)
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          cond: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithVarRef name:i)
                              right: (ArithWord w:{($ VSub_Name '$line_count')})
                            )
                          update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                          body: 
                            (DoGroup
                              children: [
                                (C 
                                  {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') 
                                    (Lit_Other ']') (Lit_Other '=') 
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (C {(sed)} {(-n)} 
                                              {
                                                (ArithSubPart
                                                  anode: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: (ArithWord w:{($ VSub_Name '$i')})
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                  spids: [3188 3197]
                                                ) (p)
                                              } {($ VSub_Name '$FILEPATH_SETTINGS')}
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [3183 3201]
                                    )
                                  }
                                )
                              ]
                              spids: [3175 3204]
                            )
                        )
                      ]
                      spids: [16777215 3125]
                    )
                  ]
                  spids: [16777215 3208]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                              {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [{(cat)}]
                          redirects: [
                            (HereDoc
                              op_id: Redir_DLess
                              fd: 16777215
                              body: 
                                {
                                  (DQ 
                                    (
'# ------------------------------------------------------------------\n'
                                    ) ('# Specify filenames or extentions to match during filescan removals.\n') ('#\n') 
                                    ('# One item per line.\n') ('#\n') ('# Examples:\n') ('# *.tmp\n') ('# ThisFileWillBeDeleted.mp3\n') 
                                    ('# *AnyFilenameContainingThisTextWillBeDeleted*\n') ('#\n') ('# To save and exit:\n') ('# - Press CTRL+X\n') ('# - Press Y\n') ('# - Press Enter\n') 
                                    (
'# ------------------------------------------------------------------\n'
                                    ) ('# Uncomment line below to include temp files during scan.\n') ('#*.tmp\n') ('\n') 
                                    (
'# Uncomment line below to include Windows Thumbnail cache during scan.\n'
                                    ) ('#Thumbs.db\n')
                                  )
                                }
                              do_expansion: True
                              here_end: _EOF_
                              was_filled: T
                              spids: [3236]
                            )
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))}
                              spids: [3240]
                            )
                          ]
                        )
                      ]
                      spids: [16777215 3231]
                    )
                  ]
                  spids: [16777215 3268]
                )
              ]
              spids: [3108]
            )
          spids: [3105 3108]
        )
        (FuncDef
          name: Write_Settings_File
          body: 
            (BraceGroup
              children: [
                (Sentence
                  child: (C {(rm)} {($ VSub_Name '$FILEPATH_SETTINGS')})
                  terminator: <Op_Amp '&'>
                )
                (SimpleCommand
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [3292]
                    )
                  ]
                )
                (ForExpr
                  init: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  cond: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                    )
                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  body: 
                    (DoGroup
                      children: [
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {(-e)}
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name aEnabledCleaners>
                                  bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')}))
                                  spids: [3324 3329]
                                )
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {($ VSub_Name '$FILEPATH_SETTINGS')}
                              spids: [3332]
                            )
                          ]
                        )
                      ]
                      spids: [3316 3337]
                    )
                )
              ]
              spids: [3279]
            )
          spids: [3276 3279]
        )
        (C {(Read_Settings_File)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (While
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                              right: 
                                (ArithUnary
                                  op_id: Node_UnaryMinus
                                  child: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (C {(clear)})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Menu_Main)})]
                              spids: [16777215 3427]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Menu_Cleaners)})]
                              spids: [3433 3447]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 2)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Menu_Options_Files)})]
                              spids: [3453 3467]
                            )
                          ]
                          spids: [16777215 3473]
                        )
                      ]
                      spids: [3405 3477]
                    )
                )
                (C {(Write_Settings_File)})
              ]
              spids: [16777215 3382]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(Run_Cleaners)})]
              spids: [3493 3507]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 2)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (ForExpr
                  init: 
                    (BinaryAssign
                      op_id: Arith_Equal
                      left: (LhsName name:i)
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  cond: 
                    (ArithBinary
                      op_id: Arith_Less
                      left: (ArithVarRef name:i)
                      right: (ArithWord w:{($ VSub_Name '$MAX_CLEANERS')})
                    )
                  update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i))
                  body: 
                    (DoGroup
                      children: [
                        (C 
                          {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') 
                            (Lit_Other '=') (1)
                          }
                        )
                      ]
                      spids: [3560 3571]
                    )
                )
                (C {(Run_Cleaners)})
              ]
              spids: [3523 3537]
            )
          ]
          spids: [16777215 3579]
        )
        (C {(unset)} {(aEnabledCleaners)})
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
      spids: [3]
    )
  ]
)