(BraceGroup
  left: <Id.Lit_LBrace '{'>
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [75]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number 1)}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [102]
                )
              ]
              redirects: []
            )
          ]
          spids: [79 99]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<G_CHECK_ROOTFS_RW>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Sync>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_BACKTITLE='> name:WHIP_BACKTITLE)
          op: assign_op.Equal
          rhs: {(SQ <DietPi-Sync>)}
          spids: [150]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
          op: assign_op.Equal
          rhs: {(SQ )}
          spids: [156]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [161]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [165]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [169]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FTP_MOUNT_AVAILABLE='>
              name: FTP_MOUNT_AVAILABLE
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [174]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FTP_MOUNT_TEXT='> name:FTP_MOUNT_TEXT)
          op: assign_op.Equal
          rhs: {(SQ <'Not available'>)}
          spids: [178]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'SAMBA_MOUNT_AVAILABLE='>
              name: SAMBA_MOUNT_AVAILABLE
            )
          op: assign_op.Equal
          rhs: {<0>}
          spids: [184]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SAMBA_MOUNT_TEXT='> name:SAMBA_MOUNT_TEXT)
          op: assign_op.Equal
          rhs: {(SQ <'Not available'>)}
          spids: [188]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYNC_DRY_RUN='> name:SYNC_DRY_RUN)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [195]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYNC_MODE_TEXT='> name:SYNC_MODE_TEXT)
          op: assign_op.Equal
          rhs: {(SQ <Disabled>)}
          spids: [200]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'SYNC_COMPRESSION_TEXT='>
              name: SYNC_COMPRESSION_TEXT
            )
          op: assign_op.Equal
          rhs: {(SQ <Disabled>)}
          spids: [206]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'SYNC_CRONDAILY_TEXT='>
              name: SYNC_CRONDAILY_TEXT
            )
          op: assign_op.Equal
          rhs: {(SQ <Disabled>)}
          spids: [212]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Menu_Main
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYNC_MODE_TEXT='> name:SYNC_MODE_TEXT)
                  op: assign_op.Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [230]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName SYNC_DELETE_MODE)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'SYNC_MODE_TEXT='>
                              name: SYNC_MODE_TEXT
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [254]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [236 250]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SYNC_COMPRESSION_TEXT='>
                      name: SYNC_COMPRESSION_TEXT
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [265]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName SYNC_COMPRESSION)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'SYNC_COMPRESSION_TEXT='>
                              name: SYNC_COMPRESSION_TEXT
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [289]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [271 285]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SYNC_CRONDAILY_TEXT='>
                      name: SYNC_CRONDAILY_TEXT
                    )
                  op: assign_op.Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [300]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName SYNC_CRONDAILY)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'SYNC_CRONDAILY_TEXT='>
                              name: SYNC_CRONDAILY_TEXT
                            )
                          op: assign_op.Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [324]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [306 320]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'sync_last_completed='> 
                (SQ <'No previous sync found in target directory.'>)
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {
                                (DQ ($ Id.VSub_DollarName FP_TARGET) <'/'> 
                                  ($ Id.VSub_DollarName SYNC_STATS_FILENAME)
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'sync_last_completed='>
                              name: sync_last_completed
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<grep>} {(SQ <'^Sync completed'>)} 
                                        {
                                          (DQ ($ Id.VSub_DollarName FP_TARGET) <'/'> 
                                            ($ Id.VSub_DollarName SYNC_STATS_FILENAME)
                                          )
                                        }
                                      )
                                      (C {<tail>} {<-1>})
                                      (C {<awk>} {(SQ <'{print $3}'>)})
                                    ]
                                    negated: F
                                    stderr_indices: []
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [362]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [343 358]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <DietPi-Sync>)}
                  spids: [397]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {
                                (DQ <'Source location:'> <Id.Lit_BadBackslash '\\'> <'n  '> 
                                  ($ Id.VSub_DollarName FP_SOURCE) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nTarget location:'> 
                                  <Id.Lit_BadBackslash '\\'> <'n  '> ($ Id.VSub_DollarName FP_TARGET) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <'nMost recent successful sync date:'> <Id.Lit_BadBackslash '\\'> <'n  '> ($ Id.VSub_DollarName sync_last_completed)
                                )
                              }
                              {<--cancel-button>}
                              {(DQ <Exit>)}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                              {<23>}
                              {<73>}
                              {<8>}
                              {(DQ <Help>)}
                              {(DQ <'What does DietPi-Sync do?'>)}
                              {(DQ <'Source Location'>)}
                              {(DQ <'Change the Source directory.'>)}
                              {(DQ <'Target Location'>)}
                              {(DQ <'Change the Target directory.'>)}
                              {(DQ <'Delete Mode'>)}
                              {(DQ ($ Id.VSub_DollarName SYNC_MODE_TEXT))}
                              {(DQ <Compression>)}
                              {(DQ ($ Id.VSub_DollarName SYNC_COMPRESSION_TEXT))}
                              {(DQ <'Sync: Daily'>)}
                              {(DQ ($ Id.VSub_DollarName SYNC_CRONDAILY_TEXT))}
                              {(DQ <'Sync: Dry Run'>)}
                              {(DQ <'Run a test Sync without modifying any data.'>)}
                              {(DQ <'Sync: Now'>)}
                              {(DQ <'Sync the Source location to the Target location.'>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [403]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [546]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName OPTION))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ <'Source Location'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TARGETMENUID='>
                                      name: TARGETMENUID
                                    )
                                  op: assign_op.Equal
                                  rhs: {<2>}
                                  spids: [584]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [577 580 589 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Target Location'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TARGETMENUID='>
                                      name: TARGETMENUID
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [600]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [593 596 605 -1]
                        )
                        (case_arm
                          pat_list: [{<Help>}]
                          action: [
                            (C {<whiptail>} {<--title>} {(DQ <'DietPi-Sync Help'>)} {<--msgbox>} 
                              {
                                (DQ 
                                  <
'DietPi-Sync is a program that allows you to duplicate a directory from one location (Source) to another (Target).'
                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <
'nFor example: If we want to duplicate (sync) the data on our external USB HDD to another location, we simply select the USB HDD as the source, then, select a target location. The target location can be anything from a networked samba fileserver, or even a FTP server.'
                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <
'nIf you would like to test a sync without modifiying any data, simply select Dry Run.'
                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nMore information:'> 
                                  <Id.Lit_BadBackslash '\\'> <'n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=256#p256'>
                                )
                              } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<19>} {<75>}
                            )
                          ]
                          spids: [609 610 654 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Delete Mode'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TARGETMENUID='>
                                      name: TARGETMENUID
                                    )
                                  op: assign_op.Equal
                                  rhs: {<3>}
                                  spids: [665]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [658 661 670 -1]
                        )
                        (case_arm
                          pat_list: [{<Compression>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TARGETMENUID='>
                                      name: TARGETMENUID
                                    )
                                  op: assign_op.Equal
                                  rhs: {<4>}
                                  spids: [679]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [674 675 684 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Sync: Daily'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'TARGETMENUID='>
                                      name: TARGETMENUID
                                    )
                                  op: assign_op.Equal
                                  rhs: {<5>}
                                  spids: [695]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [688 691 700 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Sync: Dry Run'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WHIP_TITLE='>
                                      name: WHIP_TITLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <' Test Dry Run Sync? '>)}
                                  spids: [711]
                                )
                              ]
                              redirects: []
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} 
                              {<--yesno>} 
                              {
                                (DQ <'Source location:'> <Id.Lit_BadBackslash '\\'> <n> 
                                  ($ Id.VSub_DollarName FP_SOURCE) <'/*'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nTarget location:'> 
                                  <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName FP_TARGET) <'/*'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <'nThis is a Dry Run for testing. No data will be modified.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDo you wish to continue?'>
                                )
                              } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} 
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<72>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [776]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SYNC_DRY_RUN='>
                                              name: SYNC_DRY_RUN
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [798]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<Run_Sync>})
                                  ]
                                  spids: [780 794]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [704 707 810 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Sync: Now'>)}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'WHIP_TITLE='>
                                      name: WHIP_TITLE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <' Start Sync? '>)}
                                  spids: [821]
                                )
                              ]
                              redirects: []
                            )
                            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} 
                              {<--yesno>} 
                              {
                                (DQ <'Source location:'> <Id.Lit_BadBackslash '\\'> <n> 
                                  ($ Id.VSub_DollarName FP_SOURCE) <'/*'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nTarget location:'> 
                                  <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName FP_TARGET) <'/*'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <
'nA copy of all the files and folders inside your Source location, will be created at the Target location.'
                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDo you wish to continue?'>
                                )
                              } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} 
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<16>} {<72>}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [886]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SYNC_DRY_RUN='>
                                              name: SYNC_DRY_RUN
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                          spids: [908]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (C {<Run_Sync>})
                                  ]
                                  spids: [890 904]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [814 817 920 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [550 564]
                )
              ]
              else_action: [(C {<Menu_Exit>})]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Exit
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <' Exit DietPi-Sync? '>)}
                  spids: [951]
                )
              ]
              redirects: []
            )
            (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yesno>} 
              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} 
              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<50>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [996]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'TARGETMENUID='>
                              name: TARGETMENUID
                            )
                          op: assign_op.Equal
                          rhs: {<-1>}
                          spids: [1023]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1005 1019]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Set_Directories
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'current_directory='> (DQ ($ Id.VSub_DollarName FP_TARGET))})
            (C {<local>} {<Id.Lit_VarLike 'current_mode_text='> (DQ <Target>)})
            (C {<local>} 
              {<Id.Lit_VarLike 'whip_description_text='> 
                (DQ <'Please select the '> ($ Id.VSub_DollarName current_mode_text) <' location.'> 
                  <Id.Lit_BadBackslash '\\'> <'nA copy of all the files and folders in the Source location will be created here.'> 
                  <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent Target location:'> <Id.Lit_BadBackslash '\\'> <n> 
                  ($ Id.VSub_DollarName FP_TARGET)
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <'Select your Sync Target location'>)}
                  spids: [1091]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName TARGETMENUID)}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'current_directory='>
                              name: current_directory
                            )
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName FP_SOURCE))}
                          spids: [1115]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'current_mode_text='>
                              name: current_mode_text
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <Source>)}
                          spids: [1121]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'whip_description_text='>
                              name: whip_description_text
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'Please select the '> ($ Id.VSub_DollarName current_mode_text) 
                                <' location.'> <Id.Lit_BadBackslash '\\'> 
                                <
'nA copy of all the files and folder in this Source location, will be created at the Target location.'
                                > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent Source location:'> 
                                <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName FP_SOURCE)
                              )
                            }
                          spids: [1127]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                          op: assign_op.Equal
                          rhs: {(SQ <'Select your Sync Source location'>)}
                          spids: [1144]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1097 1111]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<Check_Available_DietPi_Mounts>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {(DQ ($ Id.VSub_DollarName whip_description_text))}
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                              {<17>}
                              {<75>}
                              {<4>}
                              {(DQ <Manual>)}
                              {
                                (DQ <'Manually type your '> ($ Id.VSub_DollarName current_mode_text) 
                                  <' directory.'>
                                )
                              }
                              {(DQ <List>)}
                              {(DQ <'Select from a list of available mounts/drives'>)}
                              {(DQ <'Samba Client'>)}
                              {(DQ ($ Id.VSub_DollarName SAMBA_MOUNT_TEXT))}
                              {(DQ <'FTP Client'>)}
                              {(DQ ($ Id.VSub_DollarName FTP_MOUNT_TEXT))}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [1159]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [1246]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName OPTION))}
                      arms: [
                        (case_arm
                          pat_list: [{<List>}]
                          action: [
                            (C {<'/DietPi/dietpi/dietpi-drive_manager'>} {<1>})
                            (C {<local>} 
                              {<Id.Lit_VarLike 'return_value='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<cat>} {<'/tmp/dietpi-drive_manager_selmnt'>})
                                  right: <Id.Eof_RParen _>
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {(DQ ($ Id.VSub_DollarName return_value))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'return_value='>
                                              name: return_value
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'/mnt'>)}
                                          spids: [1321]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1300 1317]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName TARGETMENUID)}
                                                  right: {<Id.Lit_Digits 2>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'FP_SOURCE='>
                                              name: FP_SOURCE
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName return_value))}
                                          spids: [1350]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1332 1346]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'FP_TARGET='>
                                          name: FP_TARGET
                                        )
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName return_value) <'/dietpi-sync'>)}
                                      spids: [1361]
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1279 1280 1373 -1]
                        )
                        (case_arm
                          pat_list: [{<Manual>}]
                          action: [(C {<Input_User_Directory>})]
                          spids: [1377 1378 1384 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'Samba Client'>)}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName SAMBA_MOUNT_AVAILABLE)}
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                                                          right: {<Id.Lit_Digits 2>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'FP_SOURCE='>
                                                      name: FP_SOURCE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName FP_SAMBA_MOUNT))}
                                                  spids: [1429]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [1411 1425]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'FP_TARGET='>
                                                  name: FP_TARGET
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName FP_SAMBA_MOUNT) 
                                                    <'/dietpi-sync'>
                                                  )
                                                }
                                              spids: [1440]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1393 1407]
                                )
                              ]
                              else_action: [
                                (C {<Prompt_Setup_Samba_Mount>})
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName TARGETMENUID)}
                                                      right: {<Id.Lit_Digits 2>}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'FP_SOURCE='>
                                                  name: FP_SOURCE
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName current_directory))}
                                              spids: [1477]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [1459 1473]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'FP_TARGET='>
                                              name: FP_TARGET
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName current_directory))}
                                          spids: [1488]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1387 1390 1503 -1]
                        )
                        (case_arm
                          pat_list: [{(DQ <'FTP Client'>)}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName FTP_MOUNT_AVAILABLE)}
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                                                          right: {<Id.Lit_Digits 2>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'FP_SOURCE='>
                                                      name: FP_SOURCE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName FP_FTP_MOUNT))}
                                                  spids: [1549]
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [1531 1545]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'FP_TARGET='>
                                                  name: FP_TARGET
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName FP_FTP_MOUNT) 
                                                    <'/dietpi-sync'>
                                                  )
                                                }
                                              spids: [1560]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1513 1527]
                                )
                              ]
                              else_action: [
                                (C {<Prompt_Setup_FTP_Mount>})
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName TARGETMENUID)}
                                                      right: {<Id.Lit_Digits 2>}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'FP_SOURCE='>
                                                  name: FP_SOURCE
                                                )
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName current_directory))}
                                              spids: [1597]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [1579 1593]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'FP_TARGET='>
                                              name: FP_TARGET
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName current_directory))}
                                          spids: [1608]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1507 1510 1623 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1251 1265]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [1639]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Set_Sync_Delete_Mode
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <' Sync Delete Mode '>)}
                  spids: [1663]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {
                                (DQ <'Please select the Sync delete mode.'> <Id.Lit_BadBackslash '\\'> 
                                  <n> <Id.Lit_BadBackslash '\\'> <'nDisabled: (safe)'> <Id.Lit_BadBackslash '\\'> 
                                  <
'nIf files and folders exist in the Target location, that are not in the Source, they will be left alone.'
                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                  <'nEnabled: (WARNING, if in doubt, DO NOT enable)'> <Id.Lit_BadBackslash '\\'> 
                                  <
'nAn exact copy of the Source location will be created at the Target location. If files are in the Target location that dont exist in the Source, they will be DELETED.'
                                  >
                                )
                              }
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName SYNC_MODE_TEXT))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                              {<19>}
                              {<75>}
                              {<2>}
                              {(DQ <Disabled>)}
                              {(DQ <'Ignores data that exists at Target Location and not Source.'>)}
                              {(DQ <Enabled>)}
                              {(DQ <'Deletes data at Target location if not in Source Location.'>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [1669]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [1752]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName OPTION))}
                      arms: [
                        (case_arm
                          pat_list: [{<Disabled>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SYNC_DELETE_MODE='>
                                      name: SYNC_DELETE_MODE
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1790]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1785 1786 1795 -1]
                        )
                        (case_arm
                          pat_list: [{<Enabled>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SYNC_DELETE_MODE='>
                                      name: SYNC_DELETE_MODE
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1804]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1799 1800 1809 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1757 1771]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [1825]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Set_Compression
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <' Sync Compression Mode '>)}
                  spids: [1845]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {
                                (DQ <'Please select the compression mode.'> <Id.Lit_BadBackslash '\\'> 
                                  <n> <Id.Lit_BadBackslash '\\'> <'nDisabled:'> <Id.Lit_BadBackslash '\\'> 
                                  <'nNo compression will be used during data transfer.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nEnabled:'> <Id.Lit_BadBackslash '\\'> 
                                  <
'nData will be compressed when its being transfered. Useful for slow connections, however, its CPU intensive.'
                                  >
                                )
                              }
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName SYNC_COMPRESSION_TEXT))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                              {<17>}
                              {<75>}
                              {<2>}
                              {(DQ <Disabled>)}
                              {(DQ <'Transfer data in its original state.'>)}
                              {(DQ <Enabled>)}
                              {(DQ <'Compress the data during transfer.'>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [1851]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [1934]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName OPTION))}
                      arms: [
                        (case_arm
                          pat_list: [{<Disabled>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SYNC_COMPRESSION='>
                                      name: SYNC_COMPRESSION
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [1972]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1967 1968 1977 -1]
                        )
                        (case_arm
                          pat_list: [{<Enabled>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SYNC_COMPRESSION='>
                                      name: SYNC_COMPRESSION
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1986]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [1981 1982 1991 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1939 1953]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2007]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Menu_Set_CronDaily
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE)
                  op: assign_op.Equal
                  rhs: {(SQ <' Sync Cron Daily '>)}
                  spids: [2027]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--title>}
                              {(DQ ($ Id.VSub_DollarName WHIP_TITLE))}
                              {<--menu>}
                              {
                                (DQ <'Disabled:'> <Id.Lit_BadBackslash '\\'> 
                                  <'nThe user must manually sync using dietpi-sync.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nEnabled:'> <Id.Lit_BadBackslash '\\'> 
                                  <
'nA cron job will be created that automatically runs dietpi-sync, once a day.'
                                  > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(NOTICE):'> <Id.Lit_BadBackslash '\\'> 
                                  <
'nBefore enabling this feature, please run a test sync (Dry Run) to verify what will happen.'
                                  >
                                )
                              }
                              {<--cancel-button>}
                              {(DQ <Back>)}
                              {<--default-item>}
                              {(DQ ($ Id.VSub_DollarName SYNC_CRONDAILY_TEXT))}
                              {<--backtitle>}
                              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                              {<19>}
                              {<75>}
                              {<2>}
                              {(DQ <Disabled>)}
                              {(DQ <'Manual sync.'>)}
                              {(DQ <Enabled>)}
                              {(DQ <'Automatically sync once a day.'>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [2033]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [2118]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName OPTION))}
                      arms: [
                        (case_arm
                          pat_list: [{<Disabled>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SYNC_CRONDAILY='>
                                      name: SYNC_CRONDAILY
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [2156]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2151 2152 2161 -1]
                        )
                        (case_arm
                          pat_list: [{<Enabled>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SYNC_CRONDAILY='>
                                      name: SYNC_CRONDAILY
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [2170]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2165 2166 2175 -1]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [2123 2137]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [2191]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Input_User_Directory
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName TARGETMENUID)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [
                                      {<whiptail>}
                                      {<--inputbox>}
                                      {
                                        (DQ <'Please enter the filepath to your Target directory. '> 
                                          <Id.Lit_BadBackslash '\\'> <'neg: /mnt/target'>
                                        )
                                      }
                                      {<8>}
                                      {<70>}
                                      {(DQ ($ Id.VSub_DollarName FP_TARGET))}
                                      {<--title>}
                                      {(DQ <'Manual sync directory'>)}
                                      {<--backtitle>}
                                      {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_GreatAnd '3>&'>
                                        loc: (redir_loc.Fd fd:3)
                                        arg: {<1>}
                                      )
                                      (redir
                                        op: <Id.Redir_GreatAnd '1>&'>
                                        loc: (redir_loc.Fd fd:1)
                                        arg: {<2>}
                                      )
                                      (redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<3>}
                                      )
                                    ]
                                    more_env: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [2238]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [2281]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName CHOICE)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'FP_TARGET='>
                                      name: FP_TARGET
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName OPTION))}
                                  spids: [2303]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2285 2299]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [2220 2234]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName TARGETMENUID)}
                                  right: {<Id.Lit_Digits 2>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [
                                      {<whiptail>}
                                      {<--inputbox>}
                                      {
                                        (DQ <'Please enter the filepath to your Source directory. '> 
                                          <Id.Lit_BadBackslash '\\'> <'neg: /mnt/source'>
                                        )
                                      }
                                      {<8>}
                                      {<70>}
                                      {(DQ ($ Id.VSub_DollarName FP_SOURCE))}
                                      {<--title>}
                                      {(DQ <'Manual sync directory'>)}
                                      {<--backtitle>}
                                      {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_GreatAnd '3>&'>
                                        loc: (redir_loc.Fd fd:3)
                                        arg: {<1>}
                                      )
                                      (redir
                                        op: <Id.Redir_GreatAnd '1>&'>
                                        loc: (redir_loc.Fd fd:1)
                                        arg: {<2>}
                                      )
                                      (redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<3>}
                                      )
                                    ]
                                    more_env: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [2336]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [2379]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName CHOICE)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'FP_SOURCE='>
                                      name: FP_SOURCE
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName OPTION))}
                                  spids: [2401]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2383 2397]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [2318 2332]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Prompt_Setup_Samba_Mount
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<whiptail>} {<--title>} {(DQ <'Not available. Setup Now?'>)} {<--yesno>} 
              {
                (DQ ($ Id.VSub_DollarName SAMBA_MOUNT_TEXT) <Id.Lit_BadBackslash '\\'> <n> 
                  <Id.Lit_BadBackslash '\\'> <'nWould you like to run DietPi-Config and setup your Samba Client Mount now?'>
                )
              } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} 
              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<11>} {<70>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [2470]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<'/DietPi/dietpi/dietpi-config'>} {<16>} {<1>})]
                  spids: [2474 2488]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Prompt_Setup_FTP_Mount
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<whiptail>} {<--title>} {(DQ <'Not available. Setup Now?'>)} {<--yesno>} 
              {
                (DQ ($ Id.VSub_DollarName FTP_MOUNT_TEXT) <Id.Lit_BadBackslash '\\'> <n> 
                  <Id.Lit_BadBackslash '\\'> <'nWould you like to run DietPi-Config and setup your FTP Client Mount now?'>
                )
              } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} 
              {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<11>} {<70>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [2562]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<'/DietPi/dietpi/dietpi-config'>} {<16>} {<1>})]
                  spids: [2566 2580]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOGFILE='> name:LOGFILE)
          op: assign_op.Equal
          rhs: {(SQ <'/var/log/dietpi-sync.log'>)}
          spids: [2620]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_SOURCE='> name:FP_SOURCE)
          op: assign_op.Equal
          rhs: {(SQ <'/mnt/Source'>)}
          spids: [2631]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_TARGET='> name:FP_TARGET)
          op: assign_op.Equal
          rhs: {(SQ <'/mnt/Target'>)}
          spids: [2637]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_FTP_MOUNT='> name:FP_FTP_MOUNT)
          op: assign_op.Equal
          rhs: {(SQ <'/mnt/ftp_client'>)}
          spids: [2648]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_SAMBA_MOUNT='> name:FP_SAMBA_MOUNT)
          op: assign_op.Equal
          rhs: {(SQ <'/mnt/samba'>)}
          spids: [2654]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'SYNC_STATS_FILENAME='>
              name: SYNC_STATS_FILENAME
            )
          op: assign_op.Equal
          rhs: {(SQ <.dietpi-sync_stats>)}
          spids: [2665]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_EXCLUDE_GLOBAL='> name:FP_EXCLUDE_GLOBAL)
          op: assign_op.Equal
          rhs: {(SQ <'/tmp/.dietpi-sync_exclude'>)}
          spids: [2676]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_INCLUDE_GLOBAL='> name:FP_INCLUDE_GLOBAL)
          op: assign_op.Equal
          rhs: {(SQ <'/tmp/.dietpi-sync_include'>)}
          spids: [2682]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_EXCLUDE_USER='> name:FP_EXCLUDE_USER)
          op: assign_op.Equal
          rhs: {(SQ <'/DietPi/dietpi/.dietpi-sync_exclude'>)}
          spids: [2688]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FP_INCLUDE_USER='> name:FP_INCLUDE_USER)
          op: assign_op.Equal
          rhs: {(SQ <'/DietPi/dietpi/.dietpi-sync_include'>)}
          spids: [2694]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYNC_DELETE_MODE='> name:SYNC_DELETE_MODE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2705]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYNC_COMPRESSION='> name:SYNC_COMPRESSION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2709]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYNC_CRONDAILY='> name:SYNC_CRONDAILY)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [2713]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Create_Exclude_File
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName FP_TARGET))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/boot/dietpi/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/DietPi/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/dev/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/proc/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/sys/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/tmp/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/run/*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName LOGFILE))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_USER))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName FP_INCLUDE_USER))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName SYNC_STATS_FILENAME))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'/var/swap'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'*.tmp'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <Thumbs.db>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <desktop.ini>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'SyncToy*'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'System Volume Information'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_USER))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<cat>} {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_USER))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [3051 3064]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Create_Include_File
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_INCLUDE_GLOBAL))}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ )}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_INCLUDE_GLOBAL))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ ($ Id.VSub_DollarName FP_INCLUDE_USER))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<cat>} {(DQ ($ Id.VSub_DollarName FP_INCLUDE_USER))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName FP_INCLUDE_GLOBAL))}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [3141 3154]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Services_Stop
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<'/DietPi/dietpi/dietpi-services'>} {<stop>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Services_Start
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<'/DietPi/dietpi/dietpi-services'>} {<start>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Banner_Start
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'mode='> (SQ <Sync>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName SYNC_DRY_RUN)}
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mode='> name:mode)
                          op: assign_op.Equal
                          rhs: {(SQ <'Dry Run'>)}
                          spids: [3247]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [3229 3243]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Sync>} {(DQ ($ Id.VSub_DollarName mode))})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Run_Sync
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<Banner_Start>})
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName FP_TARGET))})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                              {(DQ ($ Id.VSub_DollarName FP_TARGET))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName G_USER_INPUTS)}
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<whiptail>} {<--title>} {(DQ <'Sync failed.'>)} {<--msgbox>} 
                              {
                                (DQ <'Unable to create Target directory '> 
                                  ($ Id.VSub_DollarName FP_TARGET)
                                )
                              } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<10>} {<60>}
                            )
                          ]
                          spids: [3323 3333]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [3304 3319]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<ps>} {<aux>})
                                              (C {<grep>} {<-ci>} {<-m1>} {(DQ <'[r]sync'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'Sync failed: '> 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%d-%m-%Y_%H%M'>)})
                              right: <Id.Eof_RParen _>
                            ) <'. Rsync is already running.'>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: 
                            {
                              (DQ ($ Id.VSub_DollarName FP_TARGET) <'/'> 
                                ($ Id.VSub_DollarName SYNC_STATS_FILENAME)
                              )
                            }
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName G_USER_INPUTS)}
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<whiptail>} {<--title>} {(DQ <'Sync Error'>)} {<--msgbox>} 
                              {(DQ <'A sync job could not be started as rsync is already running.'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<60>}
                            )
                          ]
                          spids: [3437 3447]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [3372 3402]
                )
              ]
              else_action: [
                (C {<Create_Exclude_File>})
                (C {<Create_Include_File>})
                (C {<local>} {<Id.Lit_VarLike 'rync_options='> (DQ <-a>)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'rync_options+='>
                          name: rync_options
                        )
                      op: assign_op.PlusEqual
                      rhs: {(DQ <v>)}
                      spids: [3516]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'rync_options+='>
                          name: rync_options
                        )
                      op: assign_op.PlusEqual
                      rhs: {(DQ <P>)}
                      spids: [3526]
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: 
                        (sh_lhs_expr.Name
                          left: <Id.Lit_VarLike 'rync_options+='>
                          name: rync_options
                        )
                      op: assign_op.PlusEqual
                      rhs: {(DQ <4>)}
                      spids: [3536]
                    )
                  ]
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName SYNC_COMPRESSION)}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'rync_options+='>
                                  name: rync_options
                                )
                              op: assign_op.PlusEqual
                              rhs: {(DQ <z>)}
                              spids: [3565]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [3547 3561]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName SYNC_DRY_RUN)}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'rync_options+='>
                                  name: rync_options
                                )
                              op: assign_op.PlusEqual
                              rhs: {(DQ <n>)}
                              spids: [3598]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [3580 3594]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName SYNC_DELETE_MODE)}
                                      right: {<Id.Lit_Digits 1>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'rync_options+='>
                                  name: rync_options
                                )
                              op: assign_op.PlusEqual
                              rhs: {(DQ <' --delete'>)}
                              spids: [3631]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      spids: [3613 3627]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
                (command.Simple
                  words: [
                    {<echo>}
                    {<-e>}
                    {
                      (DQ <'DietPi-Sync Log File.'> <Id.Lit_BadBackslash '\\'> <n> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (C {<date>} 
                              {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <d-> <Id.Lit_Other '%'> <m-> 
                                <Id.Lit_Other '%'> <Y_> <Id.Lit_Other '%'> <H> <Id.Lit_Other '%'> <M>
                              }
                            )
                          right: <Id.Eof_RParen _>
                        ) <Id.Lit_BadBackslash '\\'> <'nSYNC_DRY_RUN='> ($ Id.VSub_DollarName SYNC_DRY_RUN) 
                        <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n>
                      )
                    }
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName LOGFILE))}
                    )
                  ]
                  more_env: []
                  do_fork: T
                )
                (C {<rsync>} {($ Id.VSub_DollarName rync_options)} 
                  {<--log-file> <Id.Lit_Equals '='> ($ Id.VSub_DollarName LOGFILE)} {<--exclude-from> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))} 
                  {<--include-from> <Id.Lit_Equals '='> (DQ ($ Id.VSub_DollarName FP_INCLUDE_GLOBAL))} {(DQ ($ Id.VSub_DollarName FP_SOURCE)) <'/'>} {(DQ ($ Id.VSub_DollarName FP_TARGET)) <'/'>}
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_QMark '?')}
                                      right: {<Id.Lit_Digits 0>}
                                    )
                                  redirects: []
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.Simple
                          words: [
                            {<echo>}
                            {<-e>}
                            {
                              (DQ <'Sync completed: '> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%d-%m-%Y_%H%M'>)})
                                  right: <Id.Eof_RParen _>
                                )
                              )
                            }
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: 
                                {
                                  (DQ ($ Id.VSub_DollarName FP_TARGET) <'/'> 
                                    ($ Id.VSub_DollarName SYNC_STATS_FILENAME)
                                  )
                                }
                            )
                          ]
                          more_env: []
                          do_fork: T
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DParen
                                          child: {($ Id.VSub_DollarName G_USER_INPUTS)}
                                          redirects: []
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DParen
                                                  child: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName SYNC_DRY_RUN)}
                                                      right: {<Id.Lit_Digits 0>}
                                                    )
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<whiptail>} {<--title>} {(DQ <'Sync completed'>)} 
                                          {<--msgbox>} 
                                          {
                                            (DQ ($ Id.VSub_DollarName FP_SOURCE) 
                                              <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nHas been synced to:'> <Id.Lit_BadBackslash '\\'> <n> 
                                              ($ Id.VSub_DollarName FP_TARGET) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nLog file: '> ($ Id.VSub_DollarName LOGFILE)
                                            )
                                          } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<60>}
                                        )
                                      ]
                                      spids: [3798 3812]
                                    )
                                  ]
                                  else_action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Dry Run Sync completed'>)} 
                                      {<--msgbox>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName FP_SOURCE) 
                                          <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nHas been synced with a Dry Run (NO modifications) to:'> 
                                          <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName FP_TARGET) <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                                          <'nLog file: '> ($ Id.VSub_DollarName LOGFILE)
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<60>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [3784 3794]
                            )
                          ]
                          else_action: []
                          redirects: []
                        )
                      ]
                      spids: [3736 3750]
                    )
                  ]
                  else_action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <'Sync failed: '> 
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%d-%m-%Y_%H%M'>)})
                              right: <Id.Eof_RParen _>
                            )
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: 
                            {
                              (DQ ($ Id.VSub_DollarName FP_TARGET) <'/'> 
                                ($ Id.VSub_DollarName SYNC_STATS_FILENAME)
                              )
                            }
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: {($ Id.VSub_DollarName G_USER_INPUTS)}
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName SYNC_DRY_RUN)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<whiptail>} {<--title>} {(DQ <'Sync failed'>)} {<--msgbox>} 
                                      {
                                        (DQ 
                                          <
'Your sync has failed. Please see the Log file for more information:'
                                          > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName LOGFILE)
                                        )
                                      } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<60>}
                                    )
                                  ]
                                  spids: [3956 3970]
                                )
                              ]
                              else_action: [
                                (C {<whiptail>} {<--title>} {(DQ <'Dry Run Sync failed'>)} {<--msgbox>} 
                                  {
                                    (DQ 
                                      <
'Your sync has failed. Please see the Log file for more information:'
                                      > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName LOGFILE)
                                    )
                                  } {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<13>} {<60>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [3942 3952]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  redirects: []
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGETMENUID='> name:TARGETMENUID)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [4055]
                    )
                  ]
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Check_Install_PreReqs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [(C {<G_AG_CHECK_INSTALL_PREREQ>} {<rsync>})]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Check_Available_DietPi_Mounts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} {<Id.Lit_VarLike 'temp_file_mounts='> (DQ <'/tmp/.dietpi-sync_dietpi_mounts'>)})
            (command.Simple
              words: [{<df>} {<-h>}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName temp_file_mounts))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SAMBA_MOUNT_AVAILABLE='>
                      name: SAMBA_MOUNT_AVAILABLE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4116]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SAMBA_MOUNT_TEXT='>
                      name: SAMBA_MOUNT_TEXT
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'Not mounted ('> ($ Id.VSub_DollarName FP_SAMBA_MOUNT) 
                        <'). Select to setup.'>
                      )
                    }
                  spids: [4120]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<cat>} {(DQ ($ Id.VSub_DollarName temp_file_mounts))})
                                              (C {<grep>} {<-ci>} {<-m1>} {(DQ <'/mnt/samba'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'SAMBA_MOUNT_AVAILABLE='>
                              name: SAMBA_MOUNT_AVAILABLE
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [4164]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'SAMBA_MOUNT_TEXT='>
                              name: SAMBA_MOUNT_TEXT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'Size: '> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<df>} {<-h>})
                                        (C {<grep>} {<'/mnt/samba'>})
                                        (C {<awk>} {(SQ <'{print $2}'>)})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                ) <'B | Available: '> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<df>} {<-h>})
                                        (C {<grep>} {<'/mnt/samba'>})
                                        (C {<awk>} {(SQ <'{print $4}'>)})
                                      ]
                                      negated: F
                                      stderr_indices: []
                                    )
                                  right: <Id.Eof_RParen _>
                                ) <B>
                              )
                            }
                          spids: [4168]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4128 4160]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'FTP_MOUNT_AVAILABLE='>
                      name: FTP_MOUNT_AVAILABLE
                    )
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [4223]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FTP_MOUNT_TEXT='> name:FTP_MOUNT_TEXT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'Not mounted ('> ($ Id.VSub_DollarName FP_FTP_MOUNT) <'). Select to setup.'>)
                    }
                  spids: [4227]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<cat>} {(DQ ($ Id.VSub_DollarName temp_file_mounts))})
                                              (C {<grep>} {<-ci>} {<-m1>} {(DQ <'/mnt/ftp_client'>)})
                                            ]
                                            negated: F
                                            stderr_indices: []
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  right: {<Id.Lit_Digits 1>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'FTP_MOUNT_AVAILABLE='>
                              name: FTP_MOUNT_AVAILABLE
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [4271]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'FTP_MOUNT_TEXT='>
                              name: FTP_MOUNT_TEXT
                            )
                          op: assign_op.Equal
                          rhs: {(DQ <'Mounted and online.'>)}
                          spids: [4275]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [4235 4267]
                )
              ]
              else_action: []
              redirects: []
            )
            (C {<rm>} {(DQ ($ Id.VSub_DollarName temp_file_mounts))})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'FP_DIETPISYNC_SETTINGS='>
              name: FP_DIETPISYNC_SETTINGS
            )
          op: assign_op.Equal
          rhs: {(DQ <'/DietPi/dietpi/.dietpi-sync_settings'>)}
          spids: [4314]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Write_Settings_File
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName FP_SOURCE))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName FP_TARGET))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName SYNC_DELETE_MODE))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName SYNC_COMPRESSION))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName SYNC_CRONDAILY))}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                )
              ]
              more_env: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: Read_Settings_File
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} {<Id.Lit_VarLike 'sed_index='> <1>})
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'FP_SOURCE='>
                                  name: FP_SOURCE
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<sed>} {<-n>} {(DQ ($ Id.VSub_DollarName sed_index)) <p>} 
                                        {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [4450]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike sed_index)
                        )
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'FP_TARGET='>
                                  name: FP_TARGET
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<sed>} {<-n>} {(DQ ($ Id.VSub_DollarName sed_index)) <p>} 
                                        {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [4473]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike sed_index)
                        )
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'SYNC_DELETE_MODE='>
                                  name: SYNC_DELETE_MODE
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<sed>} {<-n>} {(DQ ($ Id.VSub_DollarName sed_index)) <p>} 
                                        {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [4496]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike sed_index)
                        )
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'SYNC_COMPRESSION='>
                                  name: SYNC_COMPRESSION
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<sed>} {<-n>} {(DQ ($ Id.VSub_DollarName sed_index)) <p>} 
                                        {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [4519]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike sed_index)
                        )
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'SYNC_CRONDAILY='>
                                  name: SYNC_CRONDAILY
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C {<sed>} {<-n>} {(DQ ($ Id.VSub_DollarName sed_index)) <p>} 
                                        {(DQ ($ Id.VSub_DollarName FP_DIETPISYNC_SETTINGS))}
                                      )
                                    right: <Id.Eof_RParen _>
                                  )
                                }
                              spids: [4542]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.DParen
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike sed_index)
                        )
                      redirects: []
                    )
                  ]
                  spids: [4427 4440]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (C {<Check_Install_PreReqs>})
    (C {<Read_Settings_File>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 1>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Run_Sync>})]
          spids: [4611 4625]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 0>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DParen
                          child: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Great
                              left: {($ Id.VSub_DollarName TARGETMENUID)}
                              right: 
                                (arith_expr.Unary
                                  op_id: Id.Node_UnaryMinus
                                  child: {<Id.Lit_Digits 1>}
                                )
                            )
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (C {<clear>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Main>})]
                          spids: [4682 4696]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName TARGETMENUID)}
                                              right: {<Id.Lit_Digits 1>}
                                            )
                                          redirects: []
                                        )
                                        (command.DParen
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName TARGETMENUID)}
                                              right: {<Id.Lit_Digits 2>}
                                            )
                                          redirects: []
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Set_Directories>})]
                          spids: [4704 4732]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                                          right: {<Id.Lit_Digits 3>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Set_Sync_Delete_Mode>})]
                          spids: [4740 4754]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                                          right: {<Id.Lit_Digits 4>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Set_Compression>})]
                          spids: [4762 4776]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName TARGETMENUID)}
                                          right: {<Id.Lit_Digits 5>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<Menu_Set_CronDaily>})]
                          spids: [4784 4798]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (C {<Write_Settings_File>})
          ]
          spids: [4641 4655]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.Simple
      words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_INCLUDE_GLOBAL))}]
      redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      more_env: []
      do_fork: T
    )
    (command.Simple
      words: [{<rm>} {(DQ ($ Id.VSub_DollarName FP_EXCLUDE_GLOBAL))}]
      redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      more_env: []
      do_fork: T
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
  redirects: []
  right: <Id.Lit_RBrace '}'>
)