(BraceGroup children: [ (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 '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [102] ) ] ) ] spids: [79 99] ) ] ) (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 '$2')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXITONBACK) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [136] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEXT_MENU_BACK) op: assign_op.Equal rhs: {(DQ <Exit>)} spids: [140] ) ] ) ] spids: [113 133] ) ] ) (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-Config>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HW_ONBOARD_WIFI) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<10p>} {<'/DietPi/dietpi/.hw_model'>}) ) } spids: [190] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_CPU_SCALING_GOV) op: assign_op.Equal rhs: {(SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors'>)} spids: [202] ) ] ) (command.ShFunction name: Load_Installed_Software body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/.installed'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<.>} {<'/DietPi/dietpi/.installed'>})] spids: [228 239] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HW_MSG_NOTSUPPORTED) op: assign_op.Equal rhs: {(DQ <'Not Supported'>)} spids: [267] ) ] ) (command.ShFunction name: Info_HW_OptionNotSupported body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'This option is not available for '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') ) } spids: [280] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<8>} {<65>} ) ] ) ) (command.ShFunction name: Info_Input_Not_Valid_Integer body: (BraceGroup children: [ (C {<whiptail>} {<--title>} {(DQ <'Invalid Value'>)} {<--msgbox>} { (DQ ($ Id.VSub_DollarName '$OPTION') <' is an invalid value. No changes have been applied'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<60>} ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [365] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXITONBACK) op: assign_op.Equal rhs: {<0>} spids: [369] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEXT_MENU_BACK) op: assign_op.Equal rhs: {(DQ <Back>)} spids: [374] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [381] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [387] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [393] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {<0>} spids: [399] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: {<0>} spids: [403] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS) op: assign_op.Equal rhs: {(SQ )} spids: [408] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_OPTIONS_MAX_DISPLAY) op: assign_op.Equal rhs: {<9>} spids: [418] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<0>} spids: [423] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: {<0>} spids: [432] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<0>} spids: [436] ) ] ) (command.ShFunction name: Menu_Main body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Config>)} spids: [452] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION'))} {<--cancel-button>} {(DQ <Exit>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<18>} {<50>} {<10>} {(DQ <1>)} {(DQ <'Display Options'>)} {(DQ <2>)} {(DQ <'Audio Options'>)} {(DQ <3>)} {(DQ <'Performance Options'>)} {(DQ <4>)} {(DQ <'Advanced Options'>)} {(DQ <5>)} {(DQ <'Language/Regional Options'>)} {(DQ <6>)} {(DQ <'Security Options'>)} {(DQ <7>)} {(DQ <'Network Options: Adapters'>)} {(DQ <8>)} {(DQ <'Network Options: NAS/Misc'>)} {(DQ <9>)} {(DQ <'AutoStart Options'>)} {(DQ <10>)} {(DQ <Tools>)} ] 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>} ) ] do_fork: T ) ) } spids: [458] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [605] ) ] ) (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>} ) ) 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 '$OPTION')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [645] ) ] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [668] ) ] ) (C {<Info_HW_OptionNotSupported>}) ] spids: [650 664] ) ] ) ] spids: [627 641] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<14>} spids: [698] ) ] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [721] ) ] ) (C {<Info_HW_OptionNotSupported>}) ] spids: [703 717] ) ] ) ] spids: [680 694] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [751] ) ] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [774] ) ] ) (C {<Info_HW_OptionNotSupported>}) ] spids: [756 770] ) ] ) ] spids: [733 747] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 4>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [804] ) ] ) ] spids: [786 800] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 5>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<7>} spids: [827] ) ] ) ] spids: [809 823] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 6>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<5>} spids: [850] ) ] ) ] spids: [832 846] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 7>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [873] ) ] ) ] spids: [855 869] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 8>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [896] ) ] ) ] spids: [878 892] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 9>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-autostart'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [922] ) ] ) ] spids: [901 915] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<11>} spids: [945] ) ] ) ] spids: [927 941] ) ] else_action: [(C {<Menu_Exit>})] ) ] spids: [609 623] ) ] else_action: [(C {<Menu_Exit>})] ) ] ) ) (command.ShFunction name: Menu_Exit body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <' Exit DietPi-Config? '>)} spids: [994] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <' Exit DietPi-Config? '>)} spids: [1000] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--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 name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [1045] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<-1>} spids: [1071] ) ] ) (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 {<ps>} {<aux>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/DietPi/dietpi/[d]ietpi-software'>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<0>} spids: [1113] ) ] ) ] spids: [1080 1110] ) ] ) (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 '$REBOOT_REQUIRED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Changes Made - Reboot Now?'>)} spids: [1141] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < ' A reboot is required to apply your new settings.\\n Would you like to reboot now?' > ) } spids: [1147] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<9>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [1180] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [1184 1198] ) ] ) ] spids: [1125 1138] ) ] ) ] spids: [1054 1068] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$EXITONBACK')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [1235] ) ] ) ] spids: [1218 1232] ) ] ) ] ) ) (command.ShFunction name: Display_Rotation_Calc_XY_Invert body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'input='> ($ Id.VSub_Number '$1')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'framebuffer_x='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_width='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'framebuffer_y='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_height='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (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 0>} ) ) 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_Less left: {($ Id.VSub_DollarName '$framebuffer_x')} right: {($ Id.VSub_DollarName '$framebuffer_y')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'temp='> ($ Id.VSub_DollarName '$framebuffer_x') } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:framebuffer_x) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$framebuffer_y')} spids: [1383] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:framebuffer_y) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$temp')} spids: [1387] ) ] ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_width=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_width='> ($ Id.VSub_DollarName '$framebuffer_x') ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_height=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_height='> ($ Id.VSub_DollarName '$framebuffer_y') ) } {<'/DietPi/config.txt'>} ) ] spids: [1359 1373] ) ] ) ] spids: [1341 1355] ) (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>} ) ) 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_Great left: {($ Id.VSub_DollarName '$framebuffer_x')} right: {($ Id.VSub_DollarName '$framebuffer_y')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'temp='> ($ Id.VSub_DollarName '$framebuffer_x') } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:framebuffer_x) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$framebuffer_y')} spids: [1471] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:framebuffer_y) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$temp')} spids: [1475] ) ] ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_width=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_width='> ($ Id.VSub_DollarName '$framebuffer_x') ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/framebuffer_height=/c'> <Id.Lit_BadBackslash '\\'> <'framebuffer_height='> ($ Id.VSub_DollarName '$framebuffer_y') ) } {<'/DietPi/config.txt'>} ) ] spids: [1447 1461] ) ] ) ] spids: [1429 1443] ) ] ) ] spids: [1260 1274] ) ] ) ] ) ) (command.ShFunction name: Menu_DisplayOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [1536] ) ] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 21>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <1>)} {(DQ <'Display Driver'>)}] ) } spids: [1567] ) ] ) ] spids: [1549 1563] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <1>)} {(DQ <'Change Resolution'>)}] ) } spids: [1584] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <2>)} {(DQ <'GPU/RAM Memory Split'>)}] ) } spids: [1596] ) ] ) (C {<local>} {<Id.Lit_VarLike 'lcdpanel_text='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_LCDPANEL='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <3>)} {(DQ <'LCD Panel addon: '> ($ Id.VSub_DollarName '$lcdpanel_text'))} ] ) } spids: [1637] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <14>)} {(DQ <'LED Control'>)}] ) } spids: [1655] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'overscan_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'disable_overscan=0'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$overscan_enabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:overscan_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [1737] ) ] ) ] spids: [1724 1734] ) ] ) (C {<local>} {<Id.Lit_VarLike 'hdmi_boost_disabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'#config_hdmi_boost='>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'hdmi_boost_text='> (SQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$hdmi_boost_disabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hdmi_boost_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [1790] ) ] ) ] spids: [1777 1787] ) ] ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_module_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'start_x=1'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_module_text='> (SQ <Disabled>)}) (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 '$rpi_camera_module_enabled')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_camera_module_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [1847] ) ] ) ] spids: [1830 1844] ) ] ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_led_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'disable_camera_led=0'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_camera_led_text='> (SQ <Disabled>)}) (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 '$rpi_camera_led_enabled')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_camera_led_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [1904] ) ] ) ] spids: [1887 1901] ) ] ) (C {<local>} {<Id.Lit_VarLike 'rotation_hdmi_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^display_rotate='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'rotation_lcd_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^lcd_rotate='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'vc1_key_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^decode_WVC1='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'mpeg2_key_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^decode_MPG2='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'justboom_ir_remote_text='> (SQ <Disabled>)}) (C {<local>} {<Id.Lit_VarLike 'justboom_ir_remote_enabled='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/justboom-ir-mpd.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:justboom_ir_remote_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [2061] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:justboom_ir_remote_enabled) op: assign_op.Equal rhs: {<1>} spids: [2067] ) ] ) ] spids: [2046 2057] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <4>)} { (DQ <'Rotation (HDMI) : '> ($ Id.VSub_DollarName '$rotation_hdmi_current') ) } ] ) } spids: [2076] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <5>)} { (DQ <'Rotation (LCD) : '> ($ Id.VSub_DollarName '$rotation_lcd_current') ) } ] ) } spids: [2089] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <6>)} { (DQ <'Overscan : '> ($ Id.VSub_DollarName '$overscan_text') ) } ] ) } spids: [2102] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$overscan_enabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'overscan_options='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <overscan_left>)} {(SQ <overscan_right>)} {(SQ <overscan_top>)} {(SQ <overscan_bottom>)} ] ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_left='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_left='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_right='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_right='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_top='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_top='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'overscan_bottom='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'overscan_bottom='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <15>)} { (DQ <'Overscan Compensation : L:'> ($ Id.VSub_DollarName '$overscan_left') <' R:'> ($ Id.VSub_DollarName '$overscan_right') <' T:'> ($ Id.VSub_DollarName '$overscan_top') <' B:'> ($ Id.VSub_DollarName '$overscan_bottom') ) } ] ) } spids: [2271] ) ] ) ] spids: [2115 2125] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <7>)} { (DQ <'HDMI Boost : '> ($ Id.VSub_DollarName '$hdmi_boost_text') ) } ] ) } spids: [2295] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <8>)} { (DQ <'RPi Camera : '> ($ Id.VSub_DollarName '$rpi_camera_module_text') ) } ] ) } spids: [2308] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <9>)} { (DQ <'RPI Camera led : '> ($ Id.VSub_DollarName '$rpi_camera_led_text') ) } ] ) } spids: [2321] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <11>)} { (DQ <'JustBoom IR remote : '> ($ Id.VSub_DollarName '$justboom_ir_remote_text') ) } ] ) } spids: [2334] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <12>)} { (DQ <'VC1 Key : '> ($ Id.VSub_DollarName '$vc1_key_current') ) } ] ) } spids: [2347] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <13>)} { (DQ <'MPEG2 Key : '> ($ Id.VSub_DollarName '$mpeg2_key_current') ) } ] ) } spids: [2360] ) ] ) ] spids: [1672 1686] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'odroid_remote_text='> (SQ <Disabled>)}) (C {<local>} {<Id.Lit_VarLike 'odroid_remote_enabled='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/odroid-remote.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:odroid_remote_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [2437] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:odroid_remote_enabled) op: assign_op.Equal rhs: {<1>} spids: [2443] ) ] ) ] spids: [2422 2433] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <10>)} { (DQ <'Odroid remote : '> ($ Id.VSub_DollarName '$odroid_remote_text') ) } ] ) } spids: [2452] ) ] ) ] spids: [2382 2404] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Options'>)} spids: [2470] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$WHIP_SELECTION_PREVIOUS'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<18>} {<70>} {<10>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [2476] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [2536] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [2564] ) ] ) (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 '$OPTION')} right: {<Id.Lit_Digits 15>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name overscan_options> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Overscan Compensation'>)} spids: [2615] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a value (pixel count) for ' > (braced_var_sub token: <Id.VSub_Name overscan_options> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <'.:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 16'> ) } {<10>} {<60>} { (DQ (braced_var_sub token: <Id.VSub_Name overscan_options> prefix_op: (Id.VSub_Bang) bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} ] 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>} ) ] do_fork: T ) ) } spids: [2621] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [2671] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/'> (braced_var_sub token: <Id.VSub_Name overscan_options> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <'=/c '> (braced_var_sub token: <Id.VSub_Name overscan_options> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <'='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [2719] ) ] ) ] spids: [2675 2689] ) ] else_action: [ (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [2740] ) ] ) ] spids: [2569 2583] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [2763] ) ] ) ] spids: [2745 2759] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 3>} ) ) 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_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: { ($ Id.VSub_DollarName '$G_HW_MODEL') } right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: { ($ Id.VSub_DollarName '$G_HW_MODEL') } right: {<Id.Lit_Digits 10>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 11>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <none>)} {(DQ <'Uninstall all panels'>)}] ) } spids: [2839] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <waveshare32>)} {(DQ <'320x240 panel with touch input'>)} ] ) } spids: [2851] ) ] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-cloudshell>)} {(DQ <'320x240 panel'>)} ] ) } spids: [2882] ) ] ) ] spids: [2864 2878] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: { ($ Id.VSub_DollarName '$G_HW_MODEL') } right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_Less left: { ($ Id.VSub_DollarName '$G_HW_MODEL') } right: {<Id.Lit_Digits 20>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-lcd35>)} {(DQ <'480x320 panel with touch input'>)} ] ) } spids: [2925] ) ] ) ] spids: [2899 2921] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - LCD Panel'>)} spids: [2942] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$lcdpanel_text'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<14>} {<60>} {<5>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [2948] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [3003] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<lcdpanel>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3034] ) ] ) ] spids: [3007 3021] ) ] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [2786 2827] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [3065] ) ] ) ] spids: [2768 2782] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 2>} ) ) 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_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'GPU/RAM Memory splits are pre-configured and applied during DietPi-Software setup. \\n \\nThe split value is optimized based on your software installs, however, feel free to tweak them.' > ) } spids: [3122] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [3153] ) ] ) ] spids: [3088 3118] ) ] else_action: [ (C {<Info_HW_OptionNotSupported>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [3170] ) ] ) ] ) ] spids: [3070 3084] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 6>} ) ) 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_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$overscan_enabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/disable_overscan=/c\\disable_overscan=1'>)} {<'/DietPi/config.txt'>} ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name overscan_options> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (C {<sed>} {<-i>} { (DQ <'/'> (braced_var_sub token: <Id.VSub_Name overscan_options> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <'=/c '> (braced_var_sub token: <Id.VSub_Name overscan_options> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <'=0'> ) } {<'/DietPi/config.txt'>} ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3303] ) ] ) ] spids: [3219 3229] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$overscan_enabled' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/disable_overscan=/c\\disable_overscan=0'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3335] ) ] ) ] spids: [3308 3320] ) ] ) ] spids: [3201 3215] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [3360] ) ] ) ] spids: [3179 3193] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 7>} ) ) 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_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ ($ Id.VSub_DollarName '$hdmi_boost_disabled' ) ) } {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName '$hdmi_boost_text') <' '> <Id.Lit_BadBackslash '\\'> <'n Would you like to disable HDMI Signal Boost?'> ) } spids: [3428] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [3477] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/config_hdmi_boost=/c\\#config_hdmi_boost=4' > ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3510] ) ] ) ] spids: [3481 3495] ) ] ) ] spids: [3409 3424] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ ($ Id.VSub_DollarName '$hdmi_boost_disabled' ) ) } {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName '$hdmi_boost_text') <' '> <Id.Lit_BadBackslash '\\'> <'n Would you like to enable HDMI Signal Boost? '> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> < 'n If you have no display output, or, blinking, selecting Enable may resolve it ' > ) } spids: [3542] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [3595] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/config_hdmi_boost=/c\\config_hdmi_boost=4' > ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: REBOOT_REQUIRED ) op: assign_op.Equal rhs: {<1>} spids: [3628] ) ] ) ] spids: [3599 3613] ) ] ) ] spids: [3523 3538] ) ] ) ] spids: [3387 3401] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [3657] ) ] ) ] spids: [3365 3379] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 8>} ) ) 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_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$rpi_camera_module_enabled' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-camera>} {<enable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3725] ) ] ) ] spids: [3702 3714] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-camera>} {<disable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3741] ) ] ) ] ) ] spids: [3684 3698] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [3766] ) ] ) ] spids: [3662 3676] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 9>} ) ) 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_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$rpi_camera_led_enabled' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/disable_camera_led=/c\\disable_camera_led=0'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3842] ) ] ) ] spids: [3811 3823] ) ] else_action: [ (C {<sed>} {<-i>} {(SQ <'/disable_camera_led=/c\\disable_camera_led=1'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [3866] ) ] ) ] ) ] spids: [3793 3807] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [3891] ) ] ) ] spids: [3771 3785] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$odroid_remote_enabled')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Odroid Remote'>)} {<--yesno>} { (DQ < 'This will enable the IR modules, setup Lirc and the Odroid Remote for Odroid C1, C2 and XU4 Cloudshell.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nNB: Other remotes can be configured by running \'irrecord\' and applying the codes to \'/etc/lirc/lircd.conf\'' > <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'))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [3981] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<odroid_remote>} ) ] spids: [3985 3999] ) ] ) ] spids: [3918 3930] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<none>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4031] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [4040] ) ] ) ] spids: [3896 3910] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$justboom_ir_remote_enabled' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'JustBoom IR Remote'>)} {<--yesno>} { (DQ <'Got a JustBoom IR Remote? Excellent!'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nDietPi will enable the IR modules, setup Lirc and enable support for MPD controls by default:' > <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'))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [4130] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<justboom_ir_remote>} ) ] spids: [4134 4148] ) ] ) ] spids: [4067 4079] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<remoteir>} {<none>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4180] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [4189] ) ] ) ] spids: [4045 4059] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - VC1 Key'>)} spids: [4212] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter your key for VC1:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 0x00000000'> ) } {<12>} {<60>} {(DQ ($ Id.VSub_DollarName '$vc1_key_current'))} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} ] 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>} ) ] do_fork: T ) ) } spids: [4218] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [4255] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'decode_WVC1='>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndecode_WVC1=0x00000000'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/config.txt'>} ) ] do_fork: T ) ] spids: [4277 4305] ) ] ) (C {<sed>} {<-i>} { (DQ <'/decode_WVC1=/c'> <Id.Lit_BadBackslash '\\'> <'decode_WVC1='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4342] ) ] ) ] spids: [4259 4273] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [4355] ) ] ) ] spids: [4194 4208] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 13>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - MPEG2 Key'>)} spids: [4378] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter your key for MPEG2:'> <Id.Lit_BadBackslash '\\'> <'n - EG: 0x00000000'> ) } {<12>} {<60>} {(DQ ($ Id.VSub_DollarName '$mpeg2_key_current'))} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} ] 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>} ) ] do_fork: T ) ) } spids: [4384] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [4421] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'decode_MPG2='>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <'ndecode_MPG2=0x00000000'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/config.txt'>} ) ] do_fork: T ) ] spids: [4443 4471] ) ] ) (C {<sed>} {<-i>} { (DQ <'/decode_MPG2=/c'> <Id.Lit_BadBackslash '\\'> <'decode_MPG2='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4508] ) ] ) ] spids: [4425 4439] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4517] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [4526] ) ] ) ] spids: [4360 4374] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 4>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0>)} {(DQ <'Disabled (default)'>)}] ) } spids: [4557] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <1>)} {(DQ <'90 degrees'>)}] ) } spids: [4569] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <2>)} {(DQ <'180 degrees'>)}] ) } spids: [4581] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <3>)} {(DQ <'270 degrees'>)}] ) } spids: [4593] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0x10000>)} {(DQ <'Horizontal flip'>)}] ) } spids: [4605] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0x20000>)} {(DQ <'Vertical flip'>)}] ) } spids: [4617] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Rotation (HDMI)'>)} spids: [4630] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nNB: If you have the RPi touchscreen, please set this to 0 and use LCD rotation option.' > ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$rotation_hdmi_current'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<18>} {<60>} {<6>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [4636] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [4695] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/display_rotate=/c'> <Id.Lit_BadBackslash '\\'> <'display_rotate='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <3>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Display_Rotation_Calc_XY_Invert>} {<1>})] spids: [4736 4769] ) ] else_action: [(C {<Display_Rotation_Calc_XY_Invert>} {<0>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4798] ) ] ) ] spids: [4699 4713] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4813] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [4822] ) ] ) ] spids: [4531 4545] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 5>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <0>)} {(DQ <'Disabled (default)'>)}] ) } spids: [4853] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <2>)} {(DQ <'180 degrees'>)}] ) } spids: [4865] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Rotation (LCD)'>)} spids: [4878] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nNB: This option is for RPi touchscreen.'> ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$rotation_lcd_current'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<14>} {<60>} {<2>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [4884] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [4943] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/lcd_rotate=/c'> <Id.Lit_BadBackslash '\\'> <'lcd_rotate='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4980] ) ] ) ] spids: [4947 4961] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [4995] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [5004] ) ] ) ] spids: [4827 4841] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 14>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-led_control'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [5030] ) ] ) ] spids: [5009 5023] ) ] ) ] spids: [2546 2560] ) ] ) (C {<unset>} {<overscan_options>}) ] ) ) (command.ShFunction name: Menu_DisplayOptions_Driver_Resolution body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [5068] ) ] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 21>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>) } ) (C {<local>} {<Id.Lit_VarLike 'nvidia_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'nvidia_text='> (SQ <'Install GPU driver'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^nvidia-driver'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nvidia_installed) op: assign_op.Equal rhs: {<1>} spids: [5147] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nvidia_text) op: assign_op.Equal rhs: {(SQ <'Uninstall GPU driver'>)} spids: [5151] ) ] ) ] spids: [5117 5143] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <Nvidia>)} {(DQ <' : '> ($ Id.VSub_DollarName '$nvidia_text'))} ] ) } spids: [5162] ) ] ) (C {<local>} {<Id.Lit_VarLike 'radeon_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'intel_installed='> <0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Display Driver'>)} spids: [5212] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$WHIP_SELECTION_PREVIOUS'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} {<4>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [5218] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [5278] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [5300] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(SQ <Nvidia>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$nvidia_installed' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<151>}) ] spids: [5326 5338] ) ] else_action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<uninstall>} {<151>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [5366] ) ] ) ] spids: [5305 5322] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(SQ <'Xorg Configuration'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Info: Xorg Configuration'>)} {<--msgbox>} { (DQ < 'NB: This feature will only work if no X server is currently running.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nPlease ensure:'> <Id.Lit_BadBackslash '\\'> <'n - No current X server (desktop) is running'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nIf a desktop is running, please set \'dietpi-autostart\' to \'Console\', reboot system, then rerun this option.' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<65>} ) (C {<X>} {<-configure>}) ] spids: [5371 5388] ) ] ) ] spids: [5282 5296] ) ] ) ] spids: [5077 5091] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'framebuffer_x='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_width='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'framebuffer_y='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <framebuffer>) <Id.Lit_VarLike '_height='>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'display_output_text='> (DQ ($ Id.VSub_DollarName '$framebuffer_x') <' X '> ($ Id.VSub_DollarName '$framebuffer_y') ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^dtoverlay=vc4-kms-v3d'>)} ) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:display_output_text) op: assign_op.Equal rhs: {(SQ <'OpenGL 1080p'>)} spids: [5570] ) ] ) ] spids: [5540 5566] ) ] ) (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>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'CONFIG_HDMI_OUTPUT=0'>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:display_output_text) op: assign_op.Equal rhs: {(DQ <Headless>)} spids: [5617] ) ] ) ] spids: [5585 5613] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [5628] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$display_output_text') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<19>} {<60>} {<9>} {(SQ <OpenGL>)} {(SQ <'1920 x 1080'>)} {(SQ <1080p>)} {(SQ <'1920 x 1080'>)} {(SQ <720p>)} {(SQ <'1280 x 720'>)} {(SQ <480p>)} {(SQ <'854 x 480'>)} {(SQ <'RPi Touchscreen'>)} {(SQ <'800 x 480'>)} {(SQ <PC1>)} {(SQ <'1024 x 768'>)} {(SQ <PC2>)} {(SQ <'800 x 640'>)} {(SQ <PC3>)} {(SQ <'640 x 480'>)} {(SQ <DietPi-Cloudshell>)} {(SQ <'320 x 240'>)} {(SQ <'sdtv_mode=0'>)} {(SQ <'Composite NTSC'>)} {(SQ <'sdtv_mode=1'>)} {(SQ <'Composite Japanese NTSC'>)} {(SQ <'sdtv_mode=2'>)} {(SQ <'Composite PAL'>)} {(SQ <'sdtv_mode=3'>)} {(SQ <'Composite Brazilian PAL'>)} {(SQ <Headless>)} {(SQ <'Disables HDMI & Composite Output'>)} ] 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>} ) ] do_fork: T ) ) } spids: [5634] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [5819] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [5841] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [5850] ) ] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=1'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/sdtv_mode=/c\\#sdtv_mode=0'>)} {<'/DietPi/config.txt'>} ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-opengl>} {<disable>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <OpenGL>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi-opengl>} {<enable>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1920'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=1080'>)} {<'/DietPi/config.txt'>} ) ] spids: [5901 5918] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ ($ Id.VSub_DollarName '$OPTION'))} right: {(DQ <sdtv_mode>) <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {($ Id.VSub_DollarName '$OPTION')}) (C {<sed>} {<-i>} {(DQ <'/sdtv_mode=/c '> ($ Id.VSub_DollarName '$OPTION'))} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=720'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=576'>)} {<'/DietPi/config.txt'>} ) ] spids: [5957 5975] ) ] else_action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <DietPi-Cloudshell>)}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=320'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=240'>)} {<'/DietPi/config.txt'>} ) ] spids: [6033 6036 6061 -1] ) (case_arm pat_list: [{<1080p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1920'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=1080'>)} {<'/DietPi/config.txt'>} ) ] spids: [6064 6065 6090 -1] ) (case_arm pat_list: [{<720p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1280'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=720'>)} {<'/DietPi/config.txt'>} ) ] spids: [6093 6094 6119 -1] ) (case_arm pat_list: [{<480p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=854'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=480'>)} {<'/DietPi/config.txt'>} ) ] spids: [6122 6123 6148 -1] ) (case_arm pat_list: [{(DQ <'RPi Touchscreen'>)}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=800'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=480'>)} {<'/DietPi/config.txt'>} ) ] spids: [6151 6154 6179 -1] ) (case_arm pat_list: [{<PC1>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=1024'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=768'>)} {<'/DietPi/config.txt'>} ) ] spids: [6182 6183 6208 -1] ) (case_arm pat_list: [{<PC2>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=800'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=640'>)} {<'/DietPi/config.txt'>} ) ] spids: [6211 6212 6237 -1] ) (case_arm pat_list: [{<PC3>}] action: [ (C {<sed>} {<-i>} {(SQ <'/framebuffer_width=/c\\framebuffer_width=640'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/framebuffer_height=/c\\framebuffer_height=480'>)} {<'/DietPi/config.txt'>} ) ] spids: [6240 6241 6266 -1] ) (case_arm pat_list: [{<Headless>}] action: [ (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} { (DQ <' Using the Headless option will: '> <Id.Lit_BadBackslash '\\'> <'n - Disable HDMI output '> <Id.Lit_BadBackslash '\\'> <'n - Lower energy consumption by 0.1+ Watts '> <Id.Lit_BadBackslash '\\'> <'n - Set framebuffer to 16x16xD8 '> <Id.Lit_BadBackslash '\\'> < 'n - Improve RAM performance by 1-5% (VideoCore shares RAM bandwidth) ' > <Id.Lit_BadBackslash '\\'> < 'n - More info here : https://www.raspberrypi.org/forums/viewtopic.php?p=105008#p105008' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<75>} ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=0'> ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [6269 6270 6321 -1] ) ] ) ] ) ] spids: [5823 5837] ) ] ) ] spids: [5445 5459] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv m "'>)}) (C {<awk>} {<-F>} {(SQ <'"'>)} {(SQ <'{print $2}'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [6398] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$current_resolution') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<16>} {<60>} {<6>} {(DQ <1080p>)} {(DQ <'1920 x 1080'>)} {(DQ <720p>)} {(DQ <'1280 x 720'>)} {(DQ <480p>)} {(DQ <'720 x 480'>)} {(DQ <'VU7+'>)} {(DQ <'1024 x 600'>)} {(DQ <PC1>)} {(DQ <'1024 x 768'>)} ] 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>} ) ] do_fork: T ) ) } spids: [6404] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [6499] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [6521] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [6530] ) ] ) (C {<sed>} {<-i>} {(SQ <'/setenv vout_mode /c\\setenv vout_mode "hdmi"'>)} {<'/DietPi/boot.ini'>} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<1080p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "1080p"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6561 6562 6576 -1] ) (case_arm pat_list: [{<720p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "720p"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6579 6580 6594 -1] ) (case_arm pat_list: [{<480p>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "480p"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6597 6598 6612 -1] ) (case_arm pat_list: [{<PC1>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "1024x768"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6615 6616 6630 -1] ) (case_arm pat_list: [{(DQ <'VU7+'>)}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv m /c\\setenv m "1024x600"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vout_mode /c\\setenv vout_mode "dvi"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [6633 6636 6661 -1] ) ] ) ] spids: [6503 6517] ) ] ) ] spids: [6341 6355] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (DQ )}) (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>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv videoconfig "'>)}) (C {<grep>} {<-ci>} {<-m1>} {<1920x1080>}) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:current_resolution) op: assign_op.Equal rhs: {(DQ <1080p>)} spids: [6747] ) ] ) ] spids: [6706 6744] ) (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>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv videoconfig "'>)}) (C {<grep>} {<-ci>} {<-m1>} {<1280x720>}) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:current_resolution) op: assign_op.Equal rhs: {(DQ <720p>)} spids: [6794] ) ] ) ] spids: [6753 6791] ) (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>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv videoconfig "'>)}) (C {<grep>} {<-ci>} {<-m1>} {<720x480>}) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:current_resolution) op: assign_op.Equal rhs: {(DQ <480p>)} spids: [6841] ) ] ) ] spids: [6800 6838] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [6851] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$current_resolution') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<14>} {<60>} {<4>} {(DQ <1080p>)} {(DQ <'1920 x 1080'>)} {(DQ <720p>)} {(DQ <'1280 x 720'>)} {(DQ <480p>)} {(DQ <'720 x 480'>)} {(DQ <'VU7+'>)} {(DQ <'1024 x 600'>)} ] 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>} ) ] do_fork: T ) ) } spids: [6857] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [6942] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [6964] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [6973] ) ] ) (C {<sed>} {<-i>} {(SQ <'/setenv vout /c\\setenv vout "hdmi"'>)} {<'/DietPi/boot.ini'>} ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<1080p>}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/1920x1080.bin"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [7004 7005 7019 -1] ) (case_arm pat_list: [{<720p>}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/1280x720.bin"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [7022 7023 7037 -1] ) (case_arm pat_list: [{<480p>}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/720x480.bin"' > ) } {<'/DietPi/boot.ini'>} ) ] spids: [7040 7041 7055 -1] ) (case_arm pat_list: [{(DQ <'VU7+'>)}] action: [ (C {<sed>} {<-i>} { (SQ < '/setenv videoconfig /c\\setenv videoconfig "drm_kms_helper.edid_firmware=edid/1024x600.bin"' > ) } {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vout /c\\setenv vout "dvi"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7058 7061 7086 -1] ) ] ) ] spids: [6946 6960] ) ] ) ] spids: [6677 6691] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-m1>} {(SQ <'setenv m "'>)}) (C {<awk>} {<-F>} {(SQ <'"'>)} {(SQ <'{print $2}'>)}) (C {<sed>} {(SQ <'s/p/p /'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [7172] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$current_resolution') ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$current_resolution'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<18>} {<60>} {<9>} {(DQ <'2160p 60hz'>)} {(DQ <'4K (Recommended)'>)} {(DQ <'2160p 50hz'>)} {(DQ <4K>)} {(DQ <'2160p 30hz'>)} {(DQ <4K>)} {(DQ <'2160p 25hz'>)} {(DQ <4K>)} {(DQ <'2160p 24hz'>)} {(DQ <4K>)} {(DQ <'1080p 60hz'>)} {(DQ <'1080p (Recommended)'>)} {(DQ <'1080p 50hz'>)} {(DQ <1080p>)} {(DQ <'1080p 24hz'>)} {(DQ <1080p>)} {(DQ <'720p 60hz'>)} {(DQ <'720p (Recommended)'>)} {(DQ <'720p 50hz'>)} {(DQ <720p>)} {(DQ <'480p 60hz'>)} {(DQ <480p>)} {(DQ <'1024x600p 60hz'>)} {(DQ <'VU7+'>)} {(DQ <'1024x768p 60hz'>)} {(DQ <'4:3'>)} {(DQ <'800x600p 60hz'>)} {(DQ <'4:3'>)} ] 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>} ) ] do_fork: T ) ) } spids: [7178] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [7369] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_resolution'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [7413] ) ] ) ] spids: [7391 7409] ) ] ) (C {<sed>} {<-i>} {(SQ <'/setenv vout "dvi"/c\\# setenv vout "dvi"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vout "vga"/c\\# setenv vout "vga"'>)} {<'/DietPi/boot.ini'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'1024x600p 60hz'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/setenv vout "dvi"/c\\setenv vout "dvi"'>)} {<'/DietPi/boot.ini'>} ) ] spids: [7453 7470] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$OPTION'))}) (C {<tr>} {<-d>} {(SQ <'[:blank:]'>)}) ] negated: F ) ) } spids: [7498] ) ] ) (C {<sed>} {<-i>} { (DQ <'/setenv m /c'> <Id.Lit_BadBackslash '\\'> <'setenv m '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$OPTION') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [7542] ) ] ) ] spids: [7373 7387] ) ] ) ] spids: [7102 7116] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 40>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_resolution='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/uEnv.txt'>}) (C {<grep>} {<-m1>} {(SQ <'optargs=disp.screen0_output_mode='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Resolution'>)} spids: [7606] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$current_resolution') ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$current_resolution'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<18>} {<55>} {<9>} {(DQ <720p50>)} {(DQ )} {(DQ <720p60>)} {(DQ <720p>)} {(DQ <1080i50>)} {(DQ )} {(DQ <1080i60>)} {(DQ <1080i>)} {(DQ <1080p24>)} {(DQ )} {(DQ <1080p50>)} {(DQ )} {(DQ <1080p60>)} {(DQ <1080p>)} {(DQ <2160p24>)} {(DQ )} {(DQ <2160p25>)} {(DQ )} {(DQ <2160p30>)} {(DQ <4K>)} ] 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>} ) ] do_fork: T ) ) } spids: [7612] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [7757] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_resolution'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/^optargs=disp.screen0_output_mode=/c'> <Id.Lit_BadBackslash '\\'> <'optargs=disp.screen0_output_mode='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/uEnv.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [7815] ) ] ) ] spids: [7779 7797] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [7828] ) ] ) ] spids: [7761 7775] ) ] ) ] spids: [7555 7569] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) ] ) ) (command.ShFunction name: Menu_AdvancedOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [7862] ) ] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (C {<local>} {<Id.Lit_VarLike 'swap_size='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONF_SWAPSIZE='>)} {<'/etc/dphys-swapfile'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'swap_text='> (DQ ($ Id.VSub_DollarName '$swap_size') <' MB'>)} ) (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 '$swap_size')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:swap_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [7929] ) ] ) ] spids: [7912 7926] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Swapfile size'>)} {(DQ <': '> ($ Id.VSub_DollarName '$swap_text'))} ] ) } spids: [7938] ) ] ) (C {<local>} {<Id.Lit_VarLike 'ntpd_mode_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NTP_MODE='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'ntpd_mode_text='> (DQ )}) (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 '$ntpd_mode_current')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ntpd_mode_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [8004] ) ] ) ] spids: [7987 8001] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ntpd_mode_current')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ntpd_mode_text) op: assign_op.Equal rhs: {(DQ <'Boot Only'>)} spids: [8027] ) ] ) ] spids: [8010 8024] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ntpd_mode_current')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ntpd_mode_text) op: assign_op.Equal rhs: {(DQ <'Boot + Daily'>)} spids: [8050] ) ] ) ] spids: [8033 8047] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ntpd_mode_current')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ntpd_mode_text) op: assign_op.Equal rhs: {(DQ <'Boot + Hourly'>)} spids: [8073] ) ] ) ] spids: [8056 8070] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ntpd_mode_current')} right: {<Id.Lit_Digits 4>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ntpd_mode_text) op: assign_op.Equal rhs: {(DQ <'Daemon + Drift'>)} spids: [8096] ) ] ) ] spids: [8079 8093] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Time sync mode'>)} {(DQ <': '> ($ Id.VSub_DollarName '$ntpd_mode_text'))} ] ) } spids: [8105] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:serialconsole_state) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SERIAL_CONSOLE_ENABLE='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [8119] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:serialconsole_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [8145] ) ] ) (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 '$serialconsole_state')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:serialconsole_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8168] ) ] ) ] spids: [8151 8165] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <'Update firmware'>)} {(DQ )}] ) } spids: [8178] ) ] ) (C {<local>} {<Id.Lit_VarLike 'bluetooth_state_text='> (SQ <Enabled>)}) (C {<local>} {<Id.Lit_VarLike 'bluetooth_state='> <1>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/modprobe.d/disable_bt.conf'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bluetooth_state) op: assign_op.Equal rhs: {<0>} spids: [8218] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bluetooth_state_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [8222] ) ] ) ] spids: [8204 8215] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Bluetooth>)} {(DQ <': '> ($ Id.VSub_DollarName '$bluetooth_state_text'))} ] ) } spids: [8252] ) ] ) ] spids: [8235 8249] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Serial console'>)} {(DQ <': '> ($ Id.VSub_DollarName '$serialconsole_text'))} ] ) } spids: [8290] ) ] ) ] spids: [8273 8287] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'rpi_i2c_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'dtparam=i2c_arm=on'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_i2c_text='> (SQ <Disabled>)}) (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 '$rpi_i2c_enabled')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_i2c_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8376] ) ] ) ] spids: [8359 8373] ) ] ) (C {<local>} {<Id.Lit_VarLike 'rpi_i2cbaudrate_hz='> (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <'i2c_arm_baudrate='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1000>} ) ) <' kHz'> ) } ) (C {<local>} {<Id.Lit_VarLike 'usb_max_current_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'max_usb_current=1'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi_usbmaxcurrent_text='> (SQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$usb_max_current_enabled'))} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_usbmaxcurrent_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8474] ) ] ) ] spids: [8456 8471] ) ] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'rpi3_usb_boot_bit_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<vcgencmd>} {<otp_dump>}) (C {<grep>} {<-m1>} {(SQ <'17:'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <3020000a>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'rpi3_usb_boot_bit_enabled_text='> (SQ <Disabled>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$rpi3_usb_boot_bit_enabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi3_usb_boot_bit_enabled_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [8556] ) ] ) ] spids: [8542 8552] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'USB boot support'>)} { (DQ <': '> ($ Id.VSub_DollarName '$rpi3_usb_boot_bit_enabled_text') ) } ] ) } spids: [8567] ) ] ) ] spids: [8484 8498] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Max USB current'>)} {(DQ <': '> ($ Id.VSub_DollarName '$rpi_usbmaxcurrent_text'))} ] ) } spids: [8585] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'I2c state'>)} {(DQ <': '> ($ Id.VSub_DollarName '$rpi_i2c_text'))} ] ) } spids: [8598] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'I2c frequency'>)} {(DQ <': '> ($ Id.VSub_DollarName '$rpi_i2cbaudrate_hz'))} ] ) } spids: [8611] ) ] ) ] spids: [8311 8325] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Advanced Options'>)} spids: [8630] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<16>} {<60>} {<8>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [8636] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [8685] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Swapfile size'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: {<0>} spids: [8735] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<2000>} spids: [8739] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'This will set the size of your swap file in MB:' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nSwapfile has a swapiness setting of 1. Swapfile is used only to prevent out of memory errors.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Recommended value = 1 (auto)'> <Id.Lit_BadBackslash '\\'> <'n - 0 = Disable swapfile'> <Id.Lit_BadBackslash '\\'> <'n - 1 = Auto size swapfile (2GB - RAM = size)'> <Id.Lit_BadBackslash '\\'> <'n - 2 - '> ($ Id.VSub_DollarName '$MAX_VALUE') <' = Manual size'> ) } {<16>} {<75>} {(DQ ($ Id.VSub_DollarName '$swap_size'))} {<--title>} {(DQ <'SwapFile Size (MB)'>)} ] 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>} ) ] do_fork: T ) ) } spids: [8743] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [8794] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MIN_VALUE')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MAX_VALUE')} ) ) ] ) 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_NEqual left: { ($ Id.VSub_DollarName '$OPTION') } right: { ($ Id.VSub_DollarName '$swap_size' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C { < '/DietPi/dietpi/func/dietpi-set_dphys-swapfile' > } {($ Id.VSub_DollarName '$OPTION')} ) ] spids: [8871 8885] ) ] ) ] spids: [8816 8863] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [8798 8812] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [8919] ) ] ) ] spids: [8714 8731] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Time sync mode'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Time Sync (NTP)'>)} {<--menu>} { (DQ < 'Here you can adjust the frequency of NTP time syncs.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Modes 1-3:'> <Id.Lit_BadBackslash '\\'> < 'nDietPi will launch NTPD as a program, rather than a daemon. Once the time has been updated on your system, NTPD will exit to reduce resource usage.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - Mode 4:'> <Id.Lit_BadBackslash '\\'> < 'nsystemd-timesyncd will run as a background daemon/service. Differences in time will be gradually adjusted over time, rather than instantly.' > ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$ntpd_mode_current'))} {<23>} {<70>} {<5>} {(DQ <0>)} {(DQ <Disabled>)} {(DQ <1>)} {(DQ <'Boot Only'>)} {(DQ <2>)} {(DQ <'Boot + Daily (Recommended)'>)} {(DQ <3>)} {(DQ <'Boot + Hourly'>)} {(DQ <4>)} {(DQ <'Daemon + Drift'>)} ] 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>} ) ] do_fork: T ) ) } spids: [8945] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9053] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<ntpd-mode>} {($ Id.VSub_DollarName '$OPTION')} ) ] spids: [9057 9071] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [9091] ) ] ) ] spids: [8924 8941] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Update firmware'>)} {<Id.Lit_RBracket ']'>} ) 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_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ < 'Would you like to update the firmware/kernel for ' > ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <'?'> <Id.Lit_BadBackslash '\\'> <'n - This will run G_RPI_UPDATE'> ) } spids: [9139] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9188] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_RPI_UPDATE>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9213] ) ] ) ] spids: [9192 9206] ) ] ) ] spids: [9121 9135] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 40>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ < 'Would you like to update the firmware/kernel for ' > ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <'?'> <Id.Lit_BadBackslash '\\'> < 'n - This will run longsleep\'s update scripts to update the U-Boot and kernel.' > ) } spids: [9244] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9293] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/usr/local/sbin/pine64_update_uboot.sh'>}) (C {<'/usr/local/sbin/pine64_update_kernel.sh'>}) ] spids: [9297 9311] ) ] ) ] spids: [9226 9240] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'Would you like to update the firmware/kernel for '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <'?'> <Id.Lit_BadBackslash '\\'> <'n - This will run G_AGDUG'> <Id.Lit_BadBackslash '\\'> < 'n - Most (but not all) devices allow APT based firmware updates' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nNB: If requested to overwrite the current kernel, press TAB and then ENTER (to confirm).' > ) } spids: [9334] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9389] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGUP>}) (C {<G_AGDUG>})] spids: [9393 9407] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [9430] ) ] ) ] spids: [9096 9113] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Max USB current'>)} {<Id.Lit_RBracket ']'>} ) 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 '$usb_max_current_enabled' ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName '$rpi_usbmaxcurrent_text') <' (1.2AMP) '> <Id.Lit_BadBackslash '\\'> <'n Would you like to disable this setting ? '> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> <'n Once Disabled: '> <Id.Lit_BadBackslash '\\'> <'n - Max USB current will be limited to 0.6AMP.'> <Id.Lit_BadBackslash '\\'> <'n - Shared by all USB ports.'> ) } spids: [9477] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9534] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/max_usb_current=/c\\max_usb_current=0'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9566] ) ] ) ] spids: [9538 9552] ) ] ) ] spids: [9460 9474] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { ($ Id.VSub_DollarName '$usb_max_current_enabled' ) } right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <' Current setting: '> ($ Id.VSub_DollarName '$rpi_usbmaxcurrent_text') <' (0.6AMP) '> <Id.Lit_BadBackslash '\\'> <'n Would you like to enable this setting ? '> <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> <'n Once Enabled: '> <Id.Lit_BadBackslash '\\'> <'n - Max USB current will be set to 1.2AMP.'> <Id.Lit_BadBackslash '\\'> <'n - Shared by all USB ports.'> ) } spids: [9594] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9651] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/max_usb_current=/c\\max_usb_current=1'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9683] ) ] ) ] spids: [9655 9669] ) ] ) ] spids: [9577 9591] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [9698] ) ] ) ] spids: [9435 9452] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'I2c state'>)} {<Id.Lit_RBracket ']'>} ) 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 '$rpi_i2c_enabled')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {<enable>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9748] ) ] ) ] spids: [9724 9738] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {<disable>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9762] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [9774] ) ] ) ] spids: [9703 9720] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'I2c frequency'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_i2cbaudrate_hz) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$rpi_i2cbaudrate_hz'))} ) (C {<tr>} {<-d>} {(SQ <' kHz'>)}) ] negated: F ) ) } spids: [9804] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter the required i2c baudrate frequency (kHz).' > ) } {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$rpi_i2cbaudrate_hz'))} {<--title>} {(DQ <'i2c baudrate frequency (kHz)'>)} ] 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>} ) ] do_fork: T ) ) } spids: [9826] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9861] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (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_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<i2c>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9918] ) ] ) ] spids: [9886 9906] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [9865 9879] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [9940] ) ] ) ] spids: [9779 9796] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Serial console'>)} {<Id.Lit_RBracket ']'>} ) 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 '$serialconsole_state')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} {<enable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [9991] ) ] ) ] spids: [9966 9980] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} {<disable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [10007] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [10020] ) ] ) ] spids: [9945 9962] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Bluetooth>)} {<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 '$bluetooth_state')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<bluetooth>} {<disable>} ) ] spids: [10046 10056] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<bluetooth>} {<enable>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [10084] ) ] ) ] spids: [10025 10042] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'USB boot support'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$rpi3_usb_boot_bit_enabled' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'The following will enable the RPi 3 to boot from USB mass storage devices. A hardware bit "17:3020000a", specific to the device is set to enable the feature.\\n\\nNB:\\n - Not all USB mass storage devices are supported\\n - The HW bit which enables this setting is non-reversible\\n\\nDo you wish to enable USB mass storage boot support?' > ) } spids: [10126] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10171] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<rpi3_usb_boot>} {<enable>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [10200] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'A reboot is required to apply this setting.\\n\\nPlease reboot this system once, the HW bit which allows USB boot support will then be set. After which, USB mass storage devices can be used for booting.\\n\\nWould you like to reboot the system now?' > ) } spids: [10209] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<75>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10242] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [10246 10260] ) ] ) ] spids: [10175 10189] ) ] ) ] spids: [10110 10122] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [10284] ) ] ) ] spids: [10089 10106] ) ] ) ] spids: [8696 8710] ) ] ) ] ) ) (command.ShFunction name: Menu_PerformanceOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [10312] ) ] ) (C {<local>} {<Id.Lit_VarLike 'current_cpu_governor='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_GOVERNOR='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'frequency_min_cpu_governor='> <1>}) (C {<local>} {<Id.Lit_VarLike 'fp_frequency_min_cpu_governor='> (SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$fp_frequency_min_cpu_governor'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:frequency_min_cpu_governor) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} { (DQ ($ Id.VSub_DollarName '$fp_frequency_min_cpu_governor' ) ) } ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [10377] ) ] ) ] spids: [10360 10373] ) ] ) (C {<local>} {<Id.Lit_VarLike 'frequency_max_cpu_governor='> <2>}) (C {<local>} {<Id.Lit_VarLike 'fp_frequency_max_cpu_governor='> (SQ <'/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$fp_frequency_max_cpu_governor'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:frequency_max_cpu_governor) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} { (DQ ($ Id.VSub_DollarName '$fp_frequency_max_cpu_governor' ) ) } ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [10432] ) ] ) ] spids: [10415 10428] ) ] ) (C {<local>} {<Id.Lit_VarLike 'arm_temp='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'arm_temp_f='> (SQ <Unknown>)}) (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_DollarName '$arm_temp')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arm_temp_f) op: assign_op.Equal rhs: { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$arm_temp')} right: {<Id.Lit_Digits 9>} ) right: {<Id.Lit_Digits 5>} ) right: {<Id.Lit_Digits 32>} ) ) <'\'f'> ) } spids: [10496] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arm_temp) op: assign_op.PlusEqual rhs: {(DQ <'\'c'>)} spids: [10524] ) ] ) ] spids: [10472 10492] ) ] ) (C {<local>} {<Id.Lit_VarLike 'memory_total='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/proc/meminfo'>}) (C {<grep>} {<-m1>} {(SQ <'MemTotal:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1000>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'memory_free='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/proc/meminfo'>}) (C {<grep>} {<-m1>} {(SQ <'MemFree:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1000>} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'memory_usage='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$memory_total')} right: {($ Id.VSub_DollarName '$memory_free')} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Overclocking>)} {(DQ <'Set Profile'>)}] ) } spids: [10660] ) ] ) ] spids: [10643 10657] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Change CPU Governor'>)} {(DQ <': '> ($ Id.VSub_DollarName '$current_cpu_governor'))} ] ) } spids: [10680] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_cpu_governor'))} {<Id.Lit_Equals '='>} {(DQ <ondemand>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_cpu_governor'))} {<Id.Lit_Equals '='>} {(DQ <conservative>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_cpu_governor'))} {<Id.Lit_Equals '='>} {(DQ <interactive>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_cpu_throttle_up='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_USAGE_THROTTLE_UP='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'CPU Throttle Up'>)} { (DQ <': '> ($ Id.VSub_DollarName '$current_cpu_throttle_up') <'%'>) } ] ) } spids: [10781] ) ] ) ] spids: [10698 10749] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_cpu_governor'))} {<Id.Lit_Equals '='>} {<ondemand>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_cpu_sample_rate='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_ONDEMAND_SAMPLE_RATE='>)} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1000>} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Ondemand Sample Rate'>)} { (DQ <': '> ($ Id.VSub_DollarName '$current_cpu_sample_rate') <' ms'> ) } ] ) } spids: [10864] ) ] ) (C {<local>} {<Id.Lit_VarLike 'current_cpu_down_factor='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'current_cpu_down_factor_ms='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$current_cpu_down_factor')} right: {($ Id.VSub_DollarName '$current_cpu_sample_rate')} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Ondemand Down Factor'>)} { (DQ <': '> ($ Id.VSub_DollarName '$current_cpu_down_factor') <' ('> ($ Id.VSub_DollarName '$current_cpu_down_factor_ms') <' ms)'> ) } ] ) } spids: [10918] ) ] ) ] spids: [10805 10820] ) ] ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_max_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_MAX_FREQ='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_max_text='> (DQ ($ Id.VSub_DollarName '$user_frequency_max_current') <' MHz'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$user_frequency_max_current')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:user_frequency_max_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [10996] ) ] ) ] spids: [10981 10993] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'CPU Max Freq Limit'>)} {(DQ <': '> ($ Id.VSub_DollarName '$user_frequency_max_text'))} ] ) } spids: [11006] ) ] ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_min_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_MIN_FREQ='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'user_frequency_min_text='> (DQ ($ Id.VSub_DollarName '$user_frequency_min_current') <' MHz'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$user_frequency_min_current')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:user_frequency_min_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [11076] ) ] ) ] spids: [11061 11073] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'CPU Min Freq Limit'>)} {(DQ <': '> ($ Id.VSub_DollarName '$user_frequency_min_text'))} ] ) } spids: [11086] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_arm_temp_limit='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <temp_limit>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'current_initial_turbo='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-m1>} {(SQ <initial_turbo>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'text_current_initial_turbo='> (DQ ($ Id.VSub_DollarName '$current_initial_turbo') <' seconds'>) } ) (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 '$current_initial_turbo')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:text_current_initial_turbo) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [11205] ) ] ) ] spids: [11188 11202] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'ARM Initial Turbo'>)} {(DQ <': '> ($ Id.VSub_DollarName '$text_current_initial_turbo'))} ] ) } spids: [11214] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'ARM Temp Limit '>)} { (DQ <': '> ($ Id.VSub_DollarName '$current_arm_temp_limit') <' \'c'> ) } ] ) } spids: [11227] ) ] ) (C {<local>} {<Id.Lit_VarLike 'rpi_freq_min_enabled='> <1>}) (C {<local>} {<Id.Lit_VarLike 'rpi_freq_min_text='> (DQ <Enabled>)}) (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>} {<'/DietPi/config.txt'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'#arm_freq_min='>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_freq_min_enabled) op: assign_op.Equal rhs: {<0>} spids: [11293] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:rpi_freq_min_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [11297] ) ] ) ] spids: [11260 11290] ) ] ) ] spids: [11104 11118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Performance Options'>)} spids: [11320] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n ARM Temp: '> ($ Id.VSub_DollarName '$arm_temp') <' : '> ($ Id.VSub_DollarName '$arm_temp_f') <Id.Lit_BadBackslash '\\'> <'n RAM: '> ($ Id.VSub_DollarName '$memory_total') <' MB | Used: '> ($ Id.VSub_DollarName '$memory_usage') <' MB | Free: '> ($ Id.VSub_DollarName '$memory_free') <' MB'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<18>} {<60>} {<8>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [11326] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [11396] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <'Ondemand Down Factor'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: {<1>} spids: [11447] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<200>} spids: [11451] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'After Ondemand throttles up, how long before the next sample to check if CPU clocks can be reduced.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'n - This value * \'Ondemand Sample Rate\' = total miliseconds' > <Id.Lit_BadBackslash '\\'> < 'n - Lower values may help reduce power consumption, however, a 500-1000ms value is recommended to prevent excessive sampling.' > <Id.Lit_BadBackslash '\\'> <'n - Valid range: '> ($ Id.VSub_DollarName '$MIN_VALUE') <' - '> ($ Id.VSub_DollarName '$MAX_VALUE') <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nIf unsure, set any value, \'Ondemand Down Factor\' option on the next screen will list the calculated miliseconds.' > ) } {<17>} {<70>} {(DQ ($ Id.VSub_DollarName '$current_cpu_down_factor'))} {<--title>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} ] 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>} ) ] do_fork: T ) ) } spids: [11455] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [11505] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MAX_VALUE')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MIN_VALUE')} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [11527 11569] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [11509 11523] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [11615] ) ] ) ] spids: [11439 11443 11619 -1] ) (case_arm pat_list: [{(DQ <'Ondemand Sample Rate'>) <Id.Lit_Star '*'>}] action: [ (C {<local>} {<Id.Lit_VarLike 'index='> <0>}) (C {<local>} {<Id.Lit_VarLike 'input_fp='> (sh_array_literal left: <Id.Op_LParen _> words: [ { (SQ < '/sys/devices/system/cpu/cpufreq/ondemand/sampling_rate_min' > ) } { (SQ < '/sys/devices/system/cpu/cpufreq/ondemand/min_sampling_rate' > ) } { (SQ < '/sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min' > ) } { (SQ < '/sys/devices/system/cpu/cpu0/cpufreq/ondemand/min_sampling_rate' > ) } ] ) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name input_fp> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} { (DQ (braced_var_sub token: <Id.VSub_Name input_fp> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$i')} spids: [11718] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [11696 11714] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} { (DQ (braced_var_sub token: <Id.VSub_Name input_fp> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [11734] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<300>} spids: [11758] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Sample rate in miliseconds, for Ondemand to check if it needs to increase CPU clocks.' > <Id.Lit_BadBackslash '\\'> <'nA lower value will make the system more responsive.'> <Id.Lit_BadBackslash '\\'> <'n - valid range: '> ($ Id.VSub_DollarName '$MIN_VALUE') <' - '> ($ Id.VSub_DollarName '$MAX_VALUE') ) } {<10>} {<70>} {(DQ ($ Id.VSub_DollarName '$current_cpu_sample_rate'))} {<--title>} {(DQ ($ Id.VSub_DollarName '$OPTION') <' (ms)'>)} ] 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>} ) ] do_fork: T ) ) } spids: [11762] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [11805] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MAX_VALUE')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MIN_VALUE')} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_ONDEMAND_SAMPLE_RATE=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_ONDEMAND_SAMPLE_RATE='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 1000>} ) ) ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [11827 11869] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [11809 11823] ) ] ) (C {<unset>} {<input_fp>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [11928] ) ] ) ] spids: [11623 11627 11932 -1] ) (case_arm pat_list: [{(DQ <'Lower Idle Frequencies'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ < 'Toggle the use of lower idle frequencies for CPU, CORE and RAM.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nAs the lower frequencies are active only when the device is idle, enabling this feature allows for potential power saving without impacting performance.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent Setting: '> ($ Id.VSub_DollarName '$rpi_freq_min_text') <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nEnable: (Allows for potential power saving)'> <Id.Lit_BadBackslash '\\'> <'nSets arm_freq_min=100, core_freq_min=75 and sdram_freq_min=200.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDisable: (Default)'> <Id.Lit_BadBackslash '\\'> < 'nSets arm_freq_min=700, core_freq_min=250 and sdram_freq_min=400.' > ) } spids: [11944] ) ] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Enable>)} {(DQ <'Lowers the idle frequencies for CPU, CORE, RAM.'>)} ] ) } spids: [11978] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Disable>)} {(DQ <'Returns the idle frequencies to defaults.'>)} ] ) } spids: [11990] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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_QUESTION'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<22>} {<75>} {<2>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [12003] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [12057] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/arm_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'arm_freq_min=100'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/core_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'core_freq_min=75'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/sdram_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'sdram_freq_min=200'> ) } {<'/DietPi/config.txt'>} ) ] spids: [12090 12107] ) ] else_action: [ (C {<sed>} {<-i>} { (DQ <'/arm_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'#arm_freq_min=700'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/core_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'#core_freq_min=250'> ) } {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/sdram_freq_min=/c'> <Id.Lit_BadBackslash '\\'> <'#sdram_freq_min=400'> ) } {<'/DietPi/config.txt'>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [12199] ) ] ) ] spids: [12072 12086] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [12212] ) ] ) ] spids: [11936 11940 12216 -1] ) (case_arm pat_list: [{(DQ <'CPU Max Freq Limit'>) <Id.Lit_Star '*'>}] action: [ (C {<'/DietPi/dietpi/dietpi-cpuinfo'>} {<2>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<'/tmp/dietpi-available_cpu_freqs'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Not Available'>)} {<--msgbox>} { (DQ < 'Your processor / kernel, does not support this feature.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(Info): Scaling_available_frequencies does not exist.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<65>} ) ] spids: [12234 12247] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_list='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'max_clock='> <0>}) (C {<local>} {<Id.Lit_VarLike 'available_frequency_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.Simple words: [{<readarray>} {<available_frequency_array>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/tmp/dietpi-available_cpu_freqs'>} ) ] do_fork: T ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name available_frequency_array> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_list) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub token: <Id.VSub_Name available_frequency_array > bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName '$i' ) } ) ) } right: {<Id.Lit_Digits 1000>} ) ) ) } {(DQ <MHz>)} ] ) } spids: [12345] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: { (braced_var_sub token: <Id.VSub_Name available_frequency_array > bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName '$i' ) } ) ) } right: {($ Id.VSub_DollarName '$max_clock')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:max_clock) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub token: <Id.VSub_Name available_frequency_array > bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName '$i' ) } ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [12394] ) ] ) ] spids: [12371 12390] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_list) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Disabled>)} {(DQ <'Returns clocks to default'>)} ] ) } spids: [12425] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 < 'Limit the maximum frequency that your processor can reach.' > <Id.Lit_BadBackslash '\\'> <'nThis can be useful for lowering temperature and saving power.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent setting: '> ($ Id.VSub_DollarName '$user_frequency_max_text') ) } {<--cancel-button>} {(DQ <Back>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--default-item>} { (DQ ($ Id.VSub_DollarName '$user_frequency_max_current' ) ) } {<18>} {<65>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_list> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [12442] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [12509] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Disabled>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MAX_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MAX_FREQ='> ($ Id.VSub_DollarName '$max_clock') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12535 12552] ) ] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MAX_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MAX_FREQ='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12513 12527] ) ] ) (C {<unset>} {<whiptail_menu_list>}) (C {<unset>} {<available_frequency_array>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [12623] ) ] ) ] spids: [12220 12224 12628 -1] ) (case_arm pat_list: [{(DQ <'CPU Min Freq Limit'>) <Id.Lit_Star '*'>}] action: [ (C {<'/DietPi/dietpi/dietpi-cpuinfo'>} {<2>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<'/tmp/dietpi-available_cpu_freqs'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Not Available'>)} {<--msgbox>} { (DQ < 'Your processor / kernel, does not support this feature.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(Info): Scaling_available_frequencies does not exist.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<65>} ) ] spids: [12646 12659] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_list='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'min_clock='> <0>}) (C {<local>} {<Id.Lit_VarLike 'available_frequency_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.Simple words: [{<readarray>} {<available_frequency_array>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/tmp/dietpi-available_cpu_freqs'>} ) ] do_fork: T ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name available_frequency_array> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_list) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub token: <Id.VSub_Name available_frequency_array > bracket_op: (bracket_op.ArrayIndex expr: { ($ Id.VSub_DollarName '$i' ) } ) ) } right: {<Id.Lit_Digits 1000>} ) ) ) } {(DQ <MHz>)} ] ) } spids: [12757] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:min_clock) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub token: <Id.VSub_Name available_frequency_array> bracket_op: (bracket_op.ArrayIndex expr: {<Id.Lit_Digits 0>} ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [12788] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_list) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Disabled>)} {(DQ <'Returns clocks to default'>)} ] ) } spids: [12811] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 < 'Limit the minimum frequency that your processor can reach.' > <Id.Lit_BadBackslash '\\'> < 'nThis can be useful for some timing critical stuff (eg. 1-wire below 480 Mhz won\'t work).' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrent setting: '> ($ Id.VSub_DollarName '$user_frequency_min_text' ) ) } {<--cancel-button>} {(DQ <Back>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--default-item>} { (DQ ($ Id.VSub_DollarName '$user_frequency_min_current' ) ) } {<18>} {<65>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_list> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [12828] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [12895] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Disabled>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MIN_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MIN_FREQ='> ($ Id.VSub_DollarName '$min_clock') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12921 12938] ) ] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_MIN_FREQ=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_MIN_FREQ='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [12899 12913] ) ] ) (C {<unset>} {<whiptail_menu_list>}) (C {<unset>} {<available_frequency_array>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [13009] ) ] ) ] spids: [12632 12636 13014 -1] ) (case_arm pat_list: [{(DQ <Overclocking>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [13026] ) ] ) ] spids: [13018 13022 13030 -1] ) (case_arm pat_list: [{(DQ <'Change CPU Governor'>) <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALING_GOV'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Not Available'>)} {<--msgbox>} { (DQ < 'Your processor, or kernel, does not support this feature.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(Info): scaling_available_governors does not exist.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<65>} ) ] spids: [13046 13061] ) ] else_action: [ (C {<local>} {<Id.Lit_VarLike 'Description='> (DQ <'Change CPU Governor:'>)} ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (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 '$FP_CPU_SCALING_GOV' ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <ondemand>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <ondemand>)} { (DQ <'Scales CPU frequency between '> ($ Id.VSub_DollarName '$frequency_min_cpu_governor' ) <' MHz and '> ($ Id.VSub_DollarName '$frequency_max_cpu_governor') <' MHz.'> ) } ] ) } spids: [13155] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Description) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nOndemand | Dynamic CPU frequency based on usage (recommended).' > ) } spids: [13171] ) ] ) ] spids: [13119 13151] ) ] ) (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 '$FP_CPU_SCALING_GOV' ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <interactive>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <interactive>)} { (DQ <'Scales CPU frequency between '> ($ Id.VSub_DollarName '$frequency_min_cpu_governor' ) <' MHz and '> ($ Id.VSub_DollarName '$frequency_max_cpu_governor') <' MHz.'> ) } ] ) } spids: [13219] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Description) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nInteractive | Dynamic CPU frequency based on usage.' > ) } spids: [13235] ) ] ) ] spids: [13183 13215] ) ] ) (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 '$FP_CPU_SCALING_GOV' ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <conservative>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <conservative>)} { (DQ <'Scales CPU frequency between '> ($ Id.VSub_DollarName '$frequency_min_cpu_governor' ) <' MHz and '> ($ Id.VSub_DollarName '$frequency_max_cpu_governor') <' MHz.'> ) } ] ) } spids: [13283] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Description) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nConservative | Same as ondemand. Bias towards powersaving, slower scaling. ' > ) } spids: [13299] ) ] ) ] spids: [13247 13279] ) ] ) (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 '$FP_CPU_SCALING_GOV' ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <powersave>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <powersave>)} { (DQ <'Limits CPU frequency to '> ($ Id.VSub_DollarName '$frequency_min_cpu_governor' ) <' MHz.'> ) } ] ) } spids: [13347] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Description) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nPowersave | Static. Reduces energy consumption, heat, performance.' > ) } spids: [13361] ) ] ) ] spids: [13311 13343] ) ] ) (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 '$FP_CPU_SCALING_GOV' ) ) } ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <performance>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <performance>)} { (DQ <'Forces CPU frequency to '> ($ Id.VSub_DollarName '$frequency_max_cpu_governor' ) <' MHz.'> ) } ] ) } spids: [13409] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Description) op: assign_op.PlusEqual rhs: { (DQ <Id.Lit_BadBackslash '\\'> < 'nPerformance | Static. Increases energy consumption, heat, performance.' > ) } spids: [13423] ) ] ) ] spids: [13373 13405] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 '$Description'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--default-item>} { (DQ ($ Id.VSub_DollarName '$current_cpu_governor') ) } {<18>} {<80>} {<5>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [13435] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [13495] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [13510 13524] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [13558] ) ] ) ] spids: [13034 13038 13563 -1] ) (case_arm pat_list: [{(DQ <'CPU Throttle Up'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: {<30>} spids: [13574] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<95>} spids: [13578] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'When the CPU usage (%) is greater than this value, the CPU frequency will increase from ' > ($ Id.VSub_DollarName '$frequency_min_cpu_governor') <' MHz to '> ($ Id.VSub_DollarName '$frequency_max_cpu_governor') <' MHz.'> <Id.Lit_BadBackslash '\\'> <'n - Valid range '> ($ Id.VSub_DollarName '$MIN_VALUE') <' - '> ($ Id.VSub_DollarName '$MAX_VALUE') <Id.Lit_BadBackslash '\\'> <'n - Recommended settings: Desktop = 50%, Server = 85%'> ) } {<10>} {<70>} {(DQ ($ Id.VSub_DollarName '$current_cpu_throttle_up'))} {<--title>} {(DQ <'CPU Throttle Up %'>)} ] 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>} ) ] do_fork: T ) ) } spids: [13582] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [13628] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MAX_VALUE')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MIN_VALUE')} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_USAGE_THROTTLE_UP=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_USAGE_THROTTLE_UP='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [13650 13692] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [13632 13646] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [13738] ) ] ) ] spids: [13566 13570 13742 -1] ) (case_arm pat_list: [{(DQ <'ARM Initial Turbo'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: {<0>} spids: [13754] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<60>} spids: [13758] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Activates turbo mode during boot ('> ($ Id.VSub_DollarName '$frequency_max_cpu_governor') <' MHz), for the duration of value in seconds. '> <Id.Lit_BadBackslash '\\'> <'n - Recommended value is 20 '> <Id.Lit_BadBackslash '\\'> <'n - Valid range '> ($ Id.VSub_DollarName '$MIN_VALUE') <' (disabled) - '> ($ Id.VSub_DollarName '$MAX_VALUE') ) } {<12>} {<60>} {(DQ ($ Id.VSub_DollarName '$current_initial_turbo'))} {<--title>} {(DQ <'ARM Initial Turbo Duration'>)} ] 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>} ) ] do_fork: T ) ) } spids: [13762] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [13806] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MAX_VALUE')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MIN_VALUE')} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/initial_turbo=/c'> <Id.Lit_BadBackslash '\\'> <'initial_turbo='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [13887] ) ] ) ] spids: [13828 13870] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [13810 13824] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [13912] ) ] ) ] spids: [13746 13750 13916 -1] ) (case_arm pat_list: [{(DQ <'ARM Temp Limit'>) <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIN_VALUE) op: assign_op.Equal rhs: {<45>} spids: [13928] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_VALUE) op: assign_op.Equal rhs: {<85>} spids: [13932] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'When the ARM temperature (\'c) reaches this value, the ARM will underclock to reduce heat. ' > <Id.Lit_BadBackslash '\\'> <'n - Recommended value is 65 '> <Id.Lit_BadBackslash '\\'> <'n - Valid range '> ($ Id.VSub_DollarName '$MIN_VALUE') <' - '> ($ Id.VSub_DollarName '$MAX_VALUE') ) } {<11>} {<60>} {(DQ ($ Id.VSub_DollarName '$current_arm_temp_limit'))} {<--title>} {(DQ <'ARM Temprature Limit'>)} ] 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>} ) ] do_fork: T ) ) } spids: [13936] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [13978] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MAX_VALUE')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {($ Id.VSub_DollarName '$MIN_VALUE')} ) ) ] ) 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_Great left: { ($ Id.VSub_DollarName '$OPTION') } right: {<Id.Lit_Digits 65>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} { (DQ <'Warning: '> ($ Id.VSub_DollarName '$OPTION') <' \'c'> ) } {<--msgbox>} { (DQ < 'Higher operating temperatures will reduce the life of your ARM SoC. Heat also dissipates through the PCB into other components, decreasing the lifespan of the whole device. Use at your own risk.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nDietPi recommends 65\'c as a safe value (75\'c for RPi 3).' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nMore info: https://github.com/Fourdee/DietPi/issues/356' > ) } {<14>} {<70>} ) ] spids: [14046 14060] ) ] ) (C {<sed>} {<-i>} { (DQ <'/temp_limit=/c'> <Id.Lit_BadBackslash '\\'> <'temp_limit='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [14112] ) ] ) ] spids: [14000 14042] ) ] else_action: [(C {<Info_Input_Not_Valid_Integer>})] ) ] spids: [13982 13996] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [14137] ) ] ) ] spids: [13920 13924 14141 -1] ) ] ) ] spids: [11411 11425] ) ] ) ] ) ) (command.ShFunction name: Change_Password body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'PasswordRecieved='> <0>}) (C {<local>} {<Id.Lit_VarLike 'passw1='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--passwordbox>} {(DQ <'Please Enter Your New Password'>)} {<8>} {<60>} {<--title>} {(DQ <'Change PW'>)} ] 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>} ) ] do_fork: T ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [14208] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike PasswordRecieved> ) ) ] spids: [14212 14226] ) ] ) (C {<local>} {<Id.Lit_VarLike 'passw2='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--passwordbox>} {(DQ <'Please Confirm Your New Password'>)} {<8>} {<60>} {<--title>} {(DQ <'Confirm PW'>)} ] 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>} ) ] do_fork: T ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [14279] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike PasswordRecieved> ) ) ] spids: [14283 14297] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$passw1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$passw2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Error - Password Mismatch'>)} spids: [14339] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} { (DQ < ' The Passwords you have entered do not match, therefor, no changes have been applied. Please try again' > ) } {<8>} {<60>} ) ] spids: [14317 14335] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$PasswordRecieved')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$passw1') <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName '$passw1') ) } ) (C {<passwd>} {<-q>} {<root>}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Password Applied'>)} spids: [14407] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ <' Your new password has successfully been applied.'>)} {<8>} {<60>} ) ] spids: [14369 14383] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Password Aborted'>)} spids: [14441] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ <' Password change has been aborted. No changes have been applied'>)} {<8>} {<60>} ) ] ) ] ) ) (command.ShFunction name: Change_Hostname body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'hostname_existing='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/etc/hostname'>}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Hostname'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$hostname_existing'))} {<--title>} {(DQ <'Change Hostname'>)} {<--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>} ) ] do_fork: T ) ) } spids: [14496] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [14537] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$CHOICE')} right: {<Id.Lit_Digits 0>} ) ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$hostname_existing'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/change_hostname'>} {(DQ ($ Id.VSub_DollarName '$OPTION'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [14583] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Hostname Change Completed'>)} spids: [14587] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} { (DQ <'Your Hostname has been changed: '> <Id.Lit_BadBackslash '\\'> <'n - From '> ($ Id.VSub_DollarName '$hostname_existing') <' '> <Id.Lit_BadBackslash '\\'> <'n - To '> ($ Id.VSub_DollarName '$OPTION') <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nA reboot now is highly recommended for hostname change, and, before continuing with any further changes.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to reboot now?'> ) } {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<75>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [14640] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [14644 14658] ) ] ) ] spids: [14541 14572] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Hostname Change Aborted'>)} spids: [14678] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ <'Hostname change has been aborted. No changes have been applied.'>)} {<8>} {<60>} ) ] ) ] ) ) (command.ShFunction name: Menu_SecurityOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [14722] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Security Options'>)} spids: [14727] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Lock down your DietPi Install'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} {<2>} {(DQ <1>)} {(DQ <'Change Root Password'>)} {(DQ <2>)} {(DQ <'Change Hostname'>)} ] 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>} ) ] do_fork: T ) ) } spids: [14733] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [14799] ) ] ) (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>} ) ) 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 '$OPTION')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Change_Password>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<5>} spids: [14840] ) ] ) ] spids: [14820 14834] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OPTION')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Change_Hostname>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<5>} spids: [14864] ) ] ) ] spids: [14844 14858] ) ] ) ] spids: [14803 14817] ) ] ) ] ) ) (command.ShFunction name: Menu_GpumemoryOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [14889] ) ] ) (C {<local>} {<Id.Lit_VarLike 'gpu_mem_current='> <0>}) (C {<local>} {<Id.Lit_VarLike 'ram_mem_current='> <0>}) (C {<local>} {<Id.Lit_VarLike 'ram_mem_total='> <0>}) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gpu_mem_current) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'gpu_mem_256='>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [14934] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_current) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 256>} right: <Id.Lit_ArithVarLike gpu_mem_current> ) ) } spids: [14956] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_total) op: assign_op.Equal rhs: {<256>} spids: [14965] ) ] ) ] spids: [14917 14931] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gpu_mem_current) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'gpu_mem_512='>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [14986] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_current) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 512>} right: <Id.Lit_ArithVarLike gpu_mem_current> ) ) } spids: [15008] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_total) op: assign_op.Equal rhs: {<512>} spids: [15017] ) ] ) ] spids: [14969 14983] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 2>} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 3>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gpu_mem_current) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'gpu_mem_1024='>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [15051] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_current) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 1024>} right: <Id.Lit_ArithVarLike gpu_mem_current> ) ) } spids: [15073] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_total) op: assign_op.Equal rhs: {<1024>} spids: [15082] ) ] ) ] spids: [15021 15048] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_current) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<free>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'Mem:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [15103] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gpu_mem_current) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 1024>} right: <Id.Lit_ArithVarLike ram_mem_current> ) ) } spids: [15129] ) ] ) ] spids: [15086 15100] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ram_mem_current) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<free>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'Mem:'>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [15155] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gpu_mem_current) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {<Id.Lit_Digits 2048>} right: <Id.Lit_ArithVarLike ram_mem_current> ) ) } spids: [15181] ) ] ) ] spids: [15138 15152] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - GPU/RAM Split'>)} spids: [15194] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<-a>} {<Id.Lit_VarLike 'option_name='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Server>)} {(DQ <Desktop>)} {(DQ <Kodi>)} {(DQ <Gaming>)}] ) } ) (C {<local>} {<-i>} {<Id.Lit_VarLike 'available_gpu_values='> (sh_array_literal left: <Id.Op_LParen _> words: [{<16>} {<64>} {<128>} {<128>}] ) } ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {<-e>} {(DQ <'As above, array is defaulted to RPi1 - 256mb'>)} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] spids: [15287 15301] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: available_gpu_values index: {<Id.Lit_Digits 2>} ) op: assign_op.Equal rhs: {<128>} spids: [15334] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: available_gpu_values index: {<Id.Lit_Digits 3>} ) op: assign_op.Equal rhs: {<192>} spids: [15342] ) ] ) ] spids: [15317 15331] ) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 2>} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 3>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: available_gpu_values index: {<Id.Lit_Digits 1>} ) op: assign_op.Equal rhs: {<128>} spids: [15380] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: available_gpu_values index: {<Id.Lit_Digits 2>} ) op: assign_op.Equal rhs: {<192>} spids: [15388] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: available_gpu_values index: {<Id.Lit_Digits 3>} ) op: assign_op.Equal rhs: {<256>} spids: [15396] ) ] ) ] spids: [15350 15377] ) ] ) (C {<local>} {<Id.Lit_VarLike 'option_output_text='> (sh_array_literal left:<Id.Op_LParen _>)} ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name option_name> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_output_text) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub token: <Id.VSub_Name option_name> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } { (DQ (braced_var_sub token: <Id.VSub_Name available_gpu_values> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <' MB GPU | '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: <Id.Lit_ArithVarLike ram_mem_total> right: { (braced_var_sub token: <Id.VSub_Name available_gpu_values> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) ) <' MB RAM'> ) } ] ) } spids: [15447] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$gpu_mem_current') <' MB GPU | '> ($ Id.VSub_DollarName '$ram_mem_current') <' MB RAM'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<75>} {<4>} { (DQ (braced_var_sub token: <Id.VSub_Name option_output_text> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [15488] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [15550] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name option_name> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Name option_name> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'temp_index='> ($ Id.VSub_DollarName '$i') } ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [15604 15626] ) ] ) ] ) ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<gpumemsplit>} { (braced_var_sub token: <Id.VSub_Name available_gpu_values> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$temp_index')} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [15663] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [15671] ) ] ) ] spids: [15554 15568] ) ] ) (C {<unset>} {<option_output_text>}) (C {<unset>} {<option_name>}) (C {<unset>} {<available_gpu_values>}) ] spids: [15205 15219] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'display_output_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^setenv hdmioutput "1"'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'display_vpu_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^setenv vpu "1"'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'display_output_text='> (DQ <Enabled>)}) (C {<local>} {<Id.Lit_VarLike 'display_vpu_text='> (DQ <Enabled>)}) (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 '$display_output_enabled')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:display_output_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [15803] ) ] ) ] spids: [15786 15800] ) ] ) (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 '$display_vpu_enabled')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:display_vpu_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [15829] ) ] ) ] spids: [15812 15826] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current : HDMI: '> ($ Id.VSub_DollarName '$display_output_text') <' | VPU: '> ($ Id.VSub_DollarName '$display_vpu_text') <' '> <Id.Lit_BadBackslash '\\'> <'n Memory : '> ($ Id.VSub_DollarName '$gpu_mem_current') <' MB GPU | '> ($ Id.VSub_DollarName '$ram_mem_current') <' MB RAM '> <Id.Lit_BadBackslash '\\'> < 'n NB: GPU/RAM figures require a reboot after a change is made.' > ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<15>} {<70>} {<3>} {(DQ <Headless>)} {(DQ <'HDMI: Disabled | VPU: Disabled'>)} {(DQ <Server>)} {(DQ <'HDMI: Enabled | VPU: Disabled'>)} {(DQ <Desktop>)} {(DQ <'HDMI: Enabled | VPU: Enabled'>)} ] 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>} ) ] do_fork: T ) ) } spids: [15839] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<Headless>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "0"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "0"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [15966] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [15974] ) ] ) ] spids: [15940 15941 15978 -1] ) (case_arm pat_list: [{<Server>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "1"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "0"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16007] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [16015] ) ] ) ] spids: [15981 15982 16019 -1] ) (case_arm pat_list: [{<Desktop>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv hdmioutput /c\\setenv hdmioutput "1"'>)} {<'/DietPi/boot.ini'>} ) (C {<sed>} {<-i>} {(SQ <'/setenv vpu /c\\setenv vpu "1"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16048] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [16056] ) ] ) ] spids: [16022 16023 16060 -1] ) ] ) ] spids: [15703 15717] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'display_output_enabled='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/boot.ini'>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^setenv nographics "0"'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'display_output_text='> (DQ <Enabled>)}) (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 '$display_output_enabled')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:display_output_text) op: assign_op.Equal rhs: {(DQ <Disabled>)} spids: [16141] ) ] ) ] spids: [16124 16138] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current : HDMI: '> ($ Id.VSub_DollarName '$display_output_text') <' | VPU: '> ($ Id.VSub_DollarName '$display_output_text') <' '> <Id.Lit_BadBackslash '\\'> <'n Memory : '> ($ Id.VSub_DollarName '$gpu_mem_current') <' MB GPU | '> ($ Id.VSub_DollarName '$ram_mem_current') <' MB RAM '> <Id.Lit_BadBackslash '\\'> < 'n NB: GPU/RAM figures require a reboot after a change is made.' > ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} {<2>} {(DQ <Headless>)} {(DQ <'HDMI: Disabled | VPU: Disabled | +300MB RAM'>)} {(DQ <Default>)} {(DQ <'HDMI: Enabled | VPU: Enabled | -300MB RAM'>)} ] 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>} ) ] do_fork: T ) ) } spids: [16151] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<Headless>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv nographics /c\\setenv nographics "1"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16257] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [16265] ) ] ) ] spids: [16242 16243 16269 -1] ) (case_arm pat_list: [{<Default>}] action: [ (C {<sed>} {<-i>} {(SQ <'/setenv nographics /c\\setenv nographics "0"'>)} {<'/DietPi/boot.ini'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16287] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<6>} spids: [16295] ) ] ) ] spids: [16272 16273 16299 -1] ) ] ) ] spids: [16071 16085] ) ] else_action: [(C {<Info_HW_OptionNotSupported>})] ) ] ) ) (command.ShFunction name: Menu_LanguageOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [16330] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Language and Regional Options'>)} spids: [16335] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} {<3>} {(DQ <Locale>)} {(DQ <'Change Language and Regional Settings'>)} {(DQ <Timezone>)} {(DQ <'Change Timezone Location Setting'>)} {(DQ <Keyboard>)} {(DQ <'Change Keyboard Layout Setting'>)} ] 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>} ) ] do_fork: T ) ) } spids: [16341] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<Locale>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16431] ) ] ) (C {<dpkg-reconfigure>} {<locales>}) (C {<local>} {<Id.Lit_VarLike 'locale_new='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^LANG='>)} {<'/etc/default/locale'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$locale_new'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:locale_new) op: assign_op.Equal rhs: {(SQ <en_GB.UTF-8>)} spids: [16488] ) ] ) ] spids: [16471 16484] ) ] ) (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<locale>} {(DQ ($ Id.VSub_DollarName '$locale_new'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<7>} spids: [16517] ) ] ) ] spids: [16426 16427 16522 -1] ) (case_arm pat_list: [{<Timezone>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16531] ) ] ) (C {<dpkg-reconfigure>} {<tzdata>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<7>} spids: [16545] ) ] ) ] spids: [16526 16527 16550 -1] ) (case_arm pat_list: [{<Keyboard>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [16559] ) ] ) (C {<whiptail>} {<--title>} {(DQ <'DietPi keyboard-configuration'>)} {<--msgbox>} { (DQ < 'NB: A keyboard must be physically plugged into the system, before its configuration can be changed.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nIf a keyboard is plugged in, please ignore this message. If not, plug one in ;)' > ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<65>} ) (C {<dpkg-reconfigure>} {<keyboard-configuration>}) (C {<invoke-rc.d>} {<keyboard-setup>} {<start>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<7>} spids: [16614] ) ] ) ] spids: [16554 16555 16619 -1] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16631] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16637] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16643] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16649] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_INDEX) op: assign_op.Equal rhs: {<0>} spids: [16656] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DISABLED) op: assign_op.Equal rhs: {<0>} spids: [16660] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [16664] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [16668] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16672] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16678] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16684] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16690] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE) op: assign_op.Equal rhs: {<1>} spids: [16696] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET) op: assign_op.Equal rhs: {<0>} spids: [16703] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16708] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16714] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16720] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16726] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_INDEX) op: assign_op.Equal rhs: {<0>} spids: [16733] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DISABLED) op: assign_op.Equal rhs: {<0>} spids: [16737] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [16741] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [16745] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16749] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16755] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16761] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS) op: assign_op.Equal rhs: {(DQ <0.0.0.0>)} spids: [16767] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE) op: assign_op.Equal rhs: {<1>} spids: [16773] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET) op: assign_op.Equal rhs: {<0>} spids: [16780] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SSID) op: assign_op.Equal rhs: {(DQ <WifiSSID>)} spids: [16784] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_KEY) op: assign_op.Equal rhs: {(DQ <WifiKey>)} spids: [16790] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_BITRATE) op: assign_op.Equal rhs: {<0>} spids: [16796] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH) op: assign_op.Equal rhs: {<0>} spids: [16800] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_HOTSPOT) op: assign_op.Equal rhs: {<0>} spids: [16804] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_COUNTRYCODE) op: assign_op.Equal rhs: {(DQ <Unknown>)} spids: [16808] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_AUTO_RECONNECT_ACTIVE) op: assign_op.Equal rhs: {<0>} spids: [16814] ) ] ) (command.ShFunction name: Network_ETH_CopyCurrentToStatic body: (BraceGroup 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 '$ETH_CONNECTED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_IP')} spids: [16847] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_GATEWAY')} spids: [16851] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_MASK')} spids: [16855] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_DNS')} spids: [16859] ) ] ) ] spids: [16830 16844] ) ] ) ] ) ) (command.ShFunction name: Network_WIFI_CopyCurrentToStatic body: (BraceGroup 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 '$WIFI_CONNECTED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_IP')} spids: [16898] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_GATEWAY')} spids: [16902] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_MASK')} spids: [16906] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_DNS')} spids: [16910] ) ] ) ] spids: [16881 16895] ) ] ) ] ) ) (command.ShFunction name: Network_Restart body: (BraceGroup children: [ (C {<'/DietPi/dietpi/dietpi-services'>} {<stop>}) (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 '$WIFI_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<enable>})] spids: [16946 16960] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<disable>}) ] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Dropping connections, please wait...'>)}) (command.Simple words: [{<ifdown>} {<eth> ($ Id.VSub_DollarName '$ETH_INDEX')}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<ifdown>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple words: [{<killall>} {<dhclient>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Restarting networking services, please wait...'>)}) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<restart>} {<networking>}) (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 '$ETH_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ifup>} {<eth> ($ Id.VSub_DollarName '$ETH_INDEX')})] spids: [17079 17093] ) ] ) (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 '$WIFI_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<ifup>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')}) (C {<systemctl>} {<restart>} {<wifi_disable_powersave>}) ] spids: [17108 17122] ) ] ) (C {<'/DietPi/dietpi/dietpi-services'>} {<start>}) (C {<Network_GetData>}) ] ) ) (command.ShFunction name: Network_ApplyChanges body: (BraceGroup children: [ (C {<sed>} {<-i>} { (DQ <'/allow-hotplug eth/c'> <Id.Lit_BadBackslash '\\'> <'#allow-hotplug eth'> ($ Id.VSub_DollarName '$ETH_INDEX') ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ <'/allow-hotplug wlan/c'> <Id.Lit_BadBackslash '\\'> <'#allow-hotplug wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX') ) } {<'/etc/network/interfaces'>} ) (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 '$ETH_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/allow-hotplug eth/c'> <Id.Lit_BadBackslash '\\'> <'allow-hotplug eth'> ($ Id.VSub_DollarName '$ETH_INDEX') ) } {<'/etc/network/interfaces'>} ) ] spids: [17215 17229] ) ] ) (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 '$WIFI_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/allow-hotplug wlan/c'> <Id.Lit_BadBackslash '\\'> <'allow-hotplug wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX') ) } {<'/etc/network/interfaces'>} ) ] spids: [17252 17266] ) ] ) (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 '$ETH_MODE_TARGET')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface eth/c'> <Id.Lit_BadBackslash '\\'> <'iface eth'> ($ Id.VSub_DollarName '$ETH_INDEX') <' inet static'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17297 17311] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ETH_MODE_TARGET')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface eth/c'> <Id.Lit_BadBackslash '\\'> <'iface eth'> ($ Id.VSub_DollarName '$ETH_INDEX') <' inet dhcp'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17335 17349] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_MODE_TARGET')} spids: [17380] ) ] ) (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 '$WIFI_MODE_TARGET')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface wlan/c'> <Id.Lit_BadBackslash '\\'> <'iface wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX') <' inet static'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17389 17403] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$WIFI_MODE_TARGET')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/iface wlan/c'> <Id.Lit_BadBackslash '\\'> <'iface wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX') <' inet dhcp'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17427 17441] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_MODE_TARGET')} spids: [17473] ) ] ) (C {<sed>} {<-i>} {(SQ <'s/^dns-nameservers/#dns-nameservers/g'>)} {<'/etc/network/interfaces'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ETH_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ETH_MODE')} right: {<Id.Lit_Digits 0>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/^#dns-nameservers/dns-nameservers/g'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17501 17528] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$WIFI_DISABLED')} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$WIFI_MODE')} right: {<Id.Lit_Digits 0>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/^#dns-nameservers/dns-nameservers/g'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17582 17607] ) ] ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/address.*/address '> ($ Id.VSub_DollarName '$ETH_IP_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/gateway.*/gateway '> ($ Id.VSub_DollarName '$ETH_GATEWAY_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/netmask.*/netmask '> ($ Id.VSub_DollarName '$ETH_MASK_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/dns-nameservers.*/dns-nameservers '> ($ Id.VSub_DollarName '$ETH_DNS_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (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 '$WIFI_HOTSPOT')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/address.*/address '> ($ Id.VSub_DollarName '$WIFI_IP_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/gateway.*/gateway '> ($ Id.VSub_DollarName '$WIFI_GATEWAY_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/netmask.*/netmask '> ($ Id.VSub_DollarName '$WIFI_MASK_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) (C {<sed>} {<-i>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/etc/network/interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) <'s/dns-nameservers.*/dns-nameservers '> ($ Id.VSub_DollarName '$WIFI_DNS_STATIC') <'/'> ) } {<'/etc/network/interfaces'>} ) ] spids: [17846 17860] ) ] ) (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 '$WIFI_HOTSPOT')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/^AUTO_SETUP_NET_WIFI_SSID=/c'> <Id.Lit_BadBackslash '\\'> <'AUTO_SETUP_NET_WIFI_SSID='> ($ Id.VSub_DollarName '$WIFI_SSID') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^AUTO_SETUP_NET_WIFI_KEY=/c'> <Id.Lit_BadBackslash '\\'> <'AUTO_SETUP_NET_WIFI_KEY='> ($ Id.VSub_DollarName '$WIFI_KEY') ) } {<'/DietPi/dietpi.txt'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$WIFI_KEY'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/AUTO_SETUP_NET_WIFI_KEYMGR=/c\\AUTO_SETUP_NET_WIFI_KEYMGR=NONE' > ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [18104 18117] ) ] else_action: [ (C {<sed>} {<-i>} { (SQ <'/AUTO_SETUP_NET_WIFI_KEYMGR=/c\\AUTO_SETUP_NET_WIFI_KEYMGR=WPA-PSK'> ) } {<'/DietPi/dietpi.txt'>} ) ] ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wificreds>} {<set>}) ] spids: [18049 18063] ) ] ) (C {<Network_Restart>}) ] ) ) (command.ShFunction name: Change_StaticIp body: (BraceGroup 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_Number '$1')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Ip Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$ETH_IP_STATIC'))} {<--title>} {(DQ <'Set Static Ip Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [18222] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18257] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [18278] ) ] ) ] spids: [18261 18275] ) ] ) ] spids: [18205 18219] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Ip Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$WIFI_IP_STATIC'))} {<--title>} {(DQ <'Set Static Ip Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [18306] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18341] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [18362] ) ] ) ] spids: [18345 18359] ) ] ) ] spids: [18289 18303] ) ] ) ] ) ) (command.ShFunction name: Change_StaticGateway body: (BraceGroup 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_Number '$1')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Gateway Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$ETH_GATEWAY_STATIC'))} {<--title>} {(DQ <'Set Static Gateway Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [18403] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18438] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [18459] ) ] ) ] spids: [18442 18456] ) ] ) ] spids: [18386 18400] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Gateway Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$WIFI_GATEWAY_STATIC'))} {<--title>} {(DQ <'Set Static Gateway Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [18487] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18522] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [18543] ) ] ) ] spids: [18526 18540] ) ] ) ] spids: [18470 18484] ) ] ) ] ) ) (command.ShFunction name: Change_StaticMask body: (BraceGroup 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_Number '$1')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Mask Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$ETH_MASK_STATIC'))} {<--title>} {(DQ <'Set Static Mask Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [18584] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18619] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [18640] ) ] ) ] spids: [18623 18637] ) ] ) ] spids: [18567 18581] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter Your New Mask Address'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$WIFI_MASK_STATIC'))} {<--title>} {(DQ <'Set Static Mask Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [18668] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18703] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [18724] ) ] ) ] spids: [18707 18721] ) ] ) ] spids: [18651 18665] ) ] ) ] ) ) (command.ShFunction name: Change_StaticDns body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'current_value='> <0>}) (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_Number '$1')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:current_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_DNS_STATIC')} spids: [18782] ) ] ) ] spids: [18765 18779] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:current_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_DNS_STATIC')} spids: [18807] ) ] ) ] spids: [18790 18804] ) ] ) (C {<local>} {<Id.Lit_VarLike 'return_value='> ($ Id.VSub_DollarName '$current_value')}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Custom>)} {(DQ <'Manually enter your DNS server'>)} {(DQ <'8.8.8.8 8.8.4.4'>)} {(DQ <': Google'>)} {(DQ <'208.67.222.222 208.67.220.220'>)} {(DQ <': OpenDNS'>)} {(DQ <'209.244.0.3 209.244.0.4'>)} {(DQ <': Level3'>)} {(DQ <'216.146.35.35 216.146.36.36'>)} {(DQ <': Dyn'>)} {(DQ <'37.235.1.174 37.235.1.177'>)} {(DQ <': FreeDNS'>)} {(DQ <'64.6.64.6 64.6.65.6'>)} {(DQ <': Verisign'>)} {(DQ <'84.200.69.80 84.200.70.40'>)} {(DQ <': DNS Watch'>)} ] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Choose DNS server'>)} {<--menu>} { (DQ <'Please select a DNS server, or choose custom for manual entry.'> ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$current_value'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<70>} {<8>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [18908] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [18968] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName '$OPTION')} arms: [ (case_arm pat_list: [{<Custom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Enter Your DNS Server Address'> <Id.Lit_BadBackslash '\\'> <'n - 2 maximum, seperated by a space.'> <Id.Lit_BadBackslash '\\'> <'n - eg: 8.8.8.8 8.8.4.4'> ) } {<10>} {<60>} {(DQ ($ Id.VSub_DollarName '$current_value'))} {<--title>} {(DQ <'Set Static DNS Address'>)} ] 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>} ) ] do_fork: T ) ) } spids: [19000] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [19039] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [19060] ) ] ) ] spids: [19043 19057] ) ] ) ] spids: [18996 18997 19067 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [19074] ) ] ) ] spids: [19070 19071 19078 -1] ) ] ) ] spids: [18972 18986] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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_Number '$1')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$return_value')} spids: [19123] ) ] ) ] spids: [19106 19120] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$return_value')} spids: [19148] ) ] ) ] spids: [19131 19145] ) ] ) ] ) ) (command.ShFunction name: Change_WifiSsid body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter the SSID name to connect to.'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$WIFI_SSID'))} {<--title>} {(DQ <'Set Your SSID'>)} ] 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>} ) ] do_fork: T ) ) } spids: [19166] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [19201] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SSID) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [19222] ) ] ) ] spids: [19205 19219] ) ] ) ] ) ) (command.ShFunction name: Change_WifiKey body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Enter the Access Key (WPA/WEP).'>)} {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$WIFI_KEY'))} {<--title>} {(DQ <'Set Your Access Key'>)} ] 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>} ) ] do_fork: T ) ) } spids: [19239] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [19274] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_KEY) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [19295] ) ] ) ] spids: [19278 19292] ) ] ) ] ) ) (command.ShFunction name: Change_WifiCountryCode body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'wifi_country_code_target='> ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE') } ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <GB>)} {(DQ <'Europe / Great Britain'>)}] ) } spids: [19327] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <US>)} {(DQ <'United States'>)}] ) } spids: [19339] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <JP>)} {(DQ <Japan>)}])} spids: [19351] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <CN>)} {(DQ <China>)}])} spids: [19363] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Manual>)} {(DQ <'Enter a custom country code'>)}] ) } spids: [19375] ) ] ) (C {<local>} {<Id.Lit_VarLike 'description_text='> (DQ < 'Choose a country, to enable WiFi channels and power ratings allowed in your country.' > ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Change WiFi country code'>)} spids: [19397] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 '$description_text'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE'))} {<15>} {<60>} {<5>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [19404] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [19464] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<Manual>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a 2 character country code: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2' > ) } {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE'))} {<--title>} {(DQ <'WiFi Country Code'>)} ] 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>} ) ] do_fork: T ) ) } spids: [19510] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [19545] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wifi_country_code_target) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [19566] ) ] ) ] spids: [19549 19563] ) ] ) ] spids: [19506 19507 19573 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wifi_country_code_target) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [19580] ) ] ) ] spids: [19576 19577 19584 -1] ) ] ) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wificountrycode>} {(DQ ($ Id.VSub_DollarName '$wifi_country_code_target'))} ) (C {<Network_Restart>}) (C {<iw>} {<reg>} {<set>} {($ Id.VSub_DollarName '$wifi_country_code_target')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_COUNTRYCODE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iw>} {<reg>} {<get>}) (C {<grep>} {<-m1>} {(SQ <country>)}) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<tr>} {<-d>} {(SQ <':'>)}) ] negated: F ) ) } spids: [19635] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$wifi_country_code_target'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Error: Country Code'>)} {<--msgbox>} { (DQ <'Country code ('> ($ Id.VSub_DollarName '$wifi_country_code_target') <') could not been applied. Please check the country code and try again.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<8>} {<55>} ) ] spids: [19673 19691] ) ] ) ] spids: [19479 19493] ) ] ) ] ) ) (command.ShFunction name: Scan_Wifi body: (BraceGroup children: [ (C {<ifup>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ <'Scanning SSIDS, please wait....'>)}) (C {<echo>} {<-e>} {(DQ <------------------------------->)}) (command.Pipeline children: [ (C {<iwlist>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')} {<scan>}) (C {<grep>} {<ESSID> <Id.Lit_Colon ':'>}) (command.Simple words: [{<sed>} {(SQ <'s/[ \\t]*ESSID:"\\(.*\\)"/\\1/'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/dietpi-config_temp'>} ) ] do_fork: T ) ] negated: F ) (command.Simple words: [{<readarray>} {<wifi_ssid_array>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/tmp/dietpi-config_temp'>} ) ] do_fork: T ) (C {<local>} {<Id.Lit_VarLike 'wifi_ssid_list='> (sh_array_literal left:<Id.Op_LParen _>)}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: { (braced_var_sub token: <Id.VSub_Name wifi_ssid_array> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wifi_ssid_list) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$i'))} { (DQ (braced_var_sub token: <Id.VSub_Name wifi_ssid_array> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] ) } spids: [19858] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi-Config - Wifi SSID Scan'>)} spids: [19879] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 a Wifi SSID'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<60>} {<6>} { (DQ (braced_var_sub token: <Id.VSub_Name wifi_ssid_list> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [19885] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [19940] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SSID) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name wifi_ssid_array> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$OPTION')} ) ) } spids: [19961] ) ] ) (C {<Change_WifiKey>}) (C {<Wifi_Reconnect>}) ] spids: [19944 19958] ) ] ) (command.Simple words: [{<rm>} {<'/tmp/dietpi-config_temp'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<unset>} {<wifi_ssid_array>}) (C {<unset>} {<wifi_ssid_list>}) ] ) ) (command.ShFunction name: Wifi_Reconnect body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'SSID: '> ($ Id.VSub_DollarName '$WIFI_SSID') <' '> <Id.Lit_BadBackslash '\\'> <'nKEY: '> ($ Id.VSub_DollarName '$WIFI_KEY') <' '> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nConnect now? '> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(NOTICE) All WiFi connections will be dropped!'> ) } spids: [20019] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [20078] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<clear>}) (C {<echo>} {<-e>} {(DQ <'Connecting to '> ($ Id.VSub_DollarName '$WIFI_SSID') <' , please wait'>)} ) (C {<Network_ApplyChanges>}) ] spids: [20082 20096] ) ] ) ] ) ) (command.ShFunction name: Ethernet_Reconnect body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (DQ <'Do you wish to apply settings and reconnect network now? '> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n(NOTICE) All Ethernet connections will be dropped!'> ) } spids: [20133] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [20182] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<clear>}) (C {<echo>} {<-e>} {(DQ <'Reconnecting Ethernet , please wait'>)}) (C {<Network_ApplyChanges>}) ] spids: [20186 20200] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE) op: assign_op.Equal rhs: {<0>} spids: [20230] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_URL) op: assign_op.Equal rhs: {(SQ <'http://mirrordirector.raspbian.org'>)} spids: [20237] ) ] ) (command.ShFunction name: Network_CheckInternetConnection body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE) op: assign_op.Equal rhs: {<0>} spids: [20251] ) ] ) (C {<wget>} {<--spider>} {<--timeout> <Id.Lit_Equals '='> <10>} {<--tries> <Id.Lit_Equals '='> <2>} {(DQ ($ Id.VSub_DollarName '$INTERNET_URL'))} ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE) op: assign_op.Equal rhs: {<2>} spids: [20297] ) ] ) ] spids: [20280 20294] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE) op: assign_op.Equal rhs: {<1>} spids: [20307] ) ] ) ] ) ] ) ) (command.ShFunction name: Network_GetData body: (BraceGroup children: [ (C {<'/DietPi/dietpi/func/obtain_network_details'>}) (C {<cp>} {<'/etc/network/interfaces'>} {<'/tmp/net_interfaces'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [20352] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [20386] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [20420] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<1p>}) (C {<awk>} {(SQ <'{print $3,$4}'>)}) ] negated: F ) ) } spids: [20454] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_INDEX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.network'>}) ) } spids: [20489] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DISABLED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <'#allow-hotplug eth'> ($ Id.VSub_DollarName '$ETH_INDEX'))} ) ] negated: F ) ) } spids: [20501] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [20522] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [20526] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20530] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20536] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20542] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20548] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE) op: assign_op.Equal rhs: {<1>} spids: [20554] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_MODE')} spids: [20558] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'address '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [20563] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'gateway '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [20597] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'netmask '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [20631] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS_STATIC) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<-n>} {<'/tmp/net_interfaces'>}) (C {<grep>} {(SQ <'dns-nameservers '>)}) (C {<sed>} {<-n>} {<2p>}) (C {<awk>} {(SQ <'{print $3,$4}'>)}) ] negated: F ) ) } spids: [20665] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_INDEX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.network'>}) ) } spids: [20700] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DISABLED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <'#allow-hotplug wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX'))} ) ] negated: F ) ) } spids: [20712] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_HARDWARE) op: assign_op.Equal rhs: {<0>} spids: [20733] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_CONNECTED) op: assign_op.Equal rhs: {<0>} spids: [20737] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20741] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20747] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20753] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS) op: assign_op.Equal rhs: {(SQ <0.0.0.0>)} spids: [20759] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE) op: assign_op.Equal rhs: {<1>} spids: [20765] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_MODE')} spids: [20769] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SSID) op: assign_op.Equal rhs: {(SQ <MySuperDooperWiFi>)} spids: [20773] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_KEY) op: assign_op.Equal rhs: {(SQ <0123456789>)} spids: [20779] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_BITRATE) op: assign_op.Equal rhs: {<0>} spids: [20789] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH) op: assign_op.Equal rhs: {<0>} spids: [20793] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_HOTSPOT) op: assign_op.Equal rhs: {<0>} spids: [20801] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/usr/sbin/hostapd'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_HOTSPOT) op: assign_op.Equal rhs: {<1>} spids: [20819] ) ] ) ] spids: [20805 20816] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_COUNTRYCODE) op: assign_op.Equal rhs: {(SQ <GB>)} spids: [20848] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<iw>}) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_COUNTRYCODE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iw>} {<reg>} {<get>}) (C {<grep>} {<-m1>} {(SQ <country>)}) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<tr>} {<-d>} {(SQ <':'>)}) ] negated: F ) ) } spids: [20875] ) ] ) ] spids: [20854 20871] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {<'/sys/class/net/eth'> ($ Id.VSub_DollarName '$ETH_INDEX')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_HARDWARE) op: assign_op.Equal rhs: {<1>} spids: [20947] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'iface eth'> ($ Id.VSub_DollarName '$ETH_INDEX') <' inet dhcp'> ) } ) ] negated: F ) ) } spids: [20956] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ETH_MODE')} spids: [20978] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_CONNECTED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <eth> ($ Id.VSub_DollarName '$ETH_INDEX'))} ) ] negated: F ) ) } spids: [20987] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ETH_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$ETH_CONNECTED')} right: {<Id.Lit_Digits 1>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_IP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<eth> ($ Id.VSub_DollarName '$ETH_INDEX')} ) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/addr://g'>)}) ] negated: F ) ) } spids: [21044] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_GATEWAY) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-m1>} {(SQ <default>)}) (C {<awk>} {(SQ <'{ print $3 }'>)}) ] negated: F ) ) } spids: [21079] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MASK) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<eth> ($ Id.VSub_DollarName '$ETH_INDEX')} ) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) (C {<sed>} {(SQ <'s/Mask://g'>)}) ] negated: F ) ) } spids: [21105] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DNS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <nameserver>)} {<'/etc/resolv.conf'>} ) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [21140] ) ] ) ] spids: [21013 21040] ) ] ) ] spids: [20927 20939] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {<'/sys/class/net/wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_HARDWARE) op: assign_op.Equal rhs: {<1>} spids: [21191] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/tmp/net_interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'iface wlan'> ($ Id.VSub_DollarName '$WIFI_INDEX') <' inet dhcp'> ) } ) ] negated: F ) ) } spids: [21200] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WIFI_MODE')} spids: [21222] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_CONNECTED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-ci>} {<-m1>} {(DQ <wlan> ($ Id.VSub_DollarName '$WIFI_INDEX'))} ) ] negated: F ) ) } spids: [21231] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SSID) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_SSID='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) ) } spids: [21257] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_KEY) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_KEY='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) ) } spids: [21281] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$WIFI_DISABLED')} right: {<Id.Lit_Digits 0>} ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$WIFI_CONNECTED')} right: {<Id.Lit_Digits 1>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_IP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')} ) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/addr://g'>)}) ] negated: F ) ) } spids: [21341] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_GATEWAY) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ip>} {<r>}) (C {<grep>} {<-m1>} {(SQ <default>)}) (C {<awk>} {(SQ <'{ print $3 }'>)}) ] negated: F ) ) } spids: [21376] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MASK) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ifconfig>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')} ) (C {<grep>} {<-m1>} {(SQ <inet>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) (C {<sed>} {(SQ <'s/Mask://g'>)}) ] negated: F ) ) } spids: [21402] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DNS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/resolv.conf'>}) (C {<grep>} {<-m1>} {<nameserver>}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [21437] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_BITRATE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iwconfig>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')} ) (C {<grep>} {<-m1>} {(SQ <'Bit Rate'>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/Rate[:=]//g'>)}) ] negated: F ) ) } spids: [21466] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iwconfig>} {<wlan> ($ Id.VSub_DollarName '$WIFI_INDEX')} ) (C {<grep>} {<-m1>} {(SQ <'Signal level='>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) (C {<sed>} {(SQ <'s/level=//g'>)}) (C {<cut>} {<-f1>} {<-d>} {(DQ <'/'>)}) ] negated: F ) ) } spids: [21501] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: { ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH' ) } right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: { ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH' ) } right: {<Id.Lit_Digits 0>} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH') <' dBm'> ) } spids: [21591] ) ] ) ] spids: [21553 21587] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_SIGNALSTRENGTH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH') <' %'>)} spids: [21603] ) ] ) ] ) ] spids: [21310 21337] ) ] ) ] spids: [21171 21183] ) ] ) (command.Simple words: [{<rm>} {<'/tmp/net_interfaces'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: Menu_NetworkAdapters body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [21652] ) ] ) (C {<Network_GetData>}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (C {<local>} {<Id.Lit_VarLike 'eth_disabled_text='> (SQ <Enabled>)}) (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 '$ETH_DISABLED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_disabled_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [21702] ) ] ) ] spids: [21685 21699] ) ] ) (C {<local>} {<Id.Lit_VarLike 'wlan_disabled_text='> (SQ <Enabled>)}) (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 '$WIFI_DISABLED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wlan_disabled_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [21737] ) ] ) ] spids: [21720 21734] ) ] ) (C {<local>} {<Id.Lit_VarLike 'eth_hardware_text='> (SQ <Available>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$ETH_HARDWARE')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_hardware_text) op: assign_op.Equal rhs: {(SQ <'Not Found'>)} spids: [21774] ) ] ) ] spids: [21759 21771] ) ] ) (C {<local>} {<Id.Lit_VarLike 'wlan_hardware_text='> (SQ <Available>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$WIFI_HARDWARE')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wlan_hardware_text) op: assign_op.Equal rhs: {(SQ <'Not Found'>)} spids: [21807] ) ] ) ] spids: [21792 21804] ) ] ) (C {<local>} {<Id.Lit_VarLike 'eth_connected_text='> (SQ <Disconnected>)}) (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 '$ETH_CONNECTED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_connected_text) op: assign_op.Equal rhs: {(SQ <Connected>)} spids: [21846] ) ] ) ] spids: [21829 21843] ) ] ) (C {<local>} {<Id.Lit_VarLike 'wlan_connected_text='> (SQ <Disconnected>)}) (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 '$WIFI_CONNECTED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wlan_connected_text) op: assign_op.Equal rhs: {(SQ <Connected>)} spids: [21881] ) ] ) (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 '$WIFI_HOTSPOT')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wlan_connected_text) op: assign_op.Equal rhs: {(DQ <'Wifi Hotspot Mode'>)} spids: [21904] ) ] ) ] spids: [21887 21901] ) ] ) ] spids: [21864 21878] ) ] ) (C {<local>} {<Id.Lit_VarLike 'Internet_connected_text='> (SQ <'Please run Internet Test'>)}) (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 '$INTERNET_ONLINE')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Internet_connected_text) op: assign_op.Equal rhs: {(SQ <Online>)} spids: [21946] ) ] ) ] spids: [21929 21943] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$INTERNET_ONLINE')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Internet_connected_text) op: assign_op.Equal rhs: {(SQ <'Offline / Failed'>)} spids: [21969] ) ] ) ] spids: [21952 21966] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_ONLINE) op: assign_op.Equal rhs: {<0>} spids: [21983] ) ] ) (C {<local>} {<Id.Lit_VarLike 'ipv6_enabled='> <1>}) (C {<local>} {<Id.Lit_VarLike 'ipv6_status_text='> (SQ <Enabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<'/proc/sys/net/ipv6'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ipv6_enabled) op: assign_op.Equal rhs: {<0>} spids: [22022] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ipv6_status_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [22026] ) ] ) ] spids: [22006 22019] ) ] ) (C {<Load_Proxy_Vars>}) (C {<local>} {<Id.Lit_VarLike 'proxy_state_text='> (SQ <Disabled>)}) (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 '$PROXY_ENABLED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:proxy_state_text) op: assign_op.Equal rhs: { (DQ <'Enabled | '> ($ Id.VSub_DollarName '$PROXY_ADDRESS') <':'> ($ Id.VSub_DollarName '$PROXY_PORT') ) } spids: [22069] ) ] ) ] spids: [22052 22066] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ENABLED) op: assign_op.Equal rhs: {<-1>} spids: [22085] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Ethernet>)} {(DQ <'Change Wired Network Settings'>)}] ) } spids: [22090] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <WiFi>)} {(DQ <'Change Wireless Network Settings'>)}] ) } spids: [22102] ) ] ) (C {<local>} {<Id.Lit_VarLike 'onboard_wifi_enabled='> <1>}) (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 '$HW_ONBOARD_WIFI')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:onboard_wifi_enabled) op: assign_op.Equal rhs: {<0>} spids: [22162] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Onboard WiFi'>)} {(DQ <'Disabled | select to toggle'>)} ] ) } spids: [22166] ) ] ) ] spids: [22147 22158] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Onboard WiFi'>)} {(DQ <'Enabled | select to toggle'>)} ] ) } spids: [22183] ) ] ) ] ) ] spids: [22129 22143] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <IPv6>)} {(DQ <'Toggle IPv6 Support'>)}] ) } spids: [22204] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Test>)} {(DQ <'Run the Internet Connection Test'>)}] ) } spids: [22216] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Proxy>)} {(DQ <'Configure proxy settings'>)}] ) } spids: [22228] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Network Options: Adapters'>)} spids: [22241] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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.Lit_BadBackslash '\\'> <'n Ethernet : '> ($ Id.VSub_DollarName '$eth_hardware_text') <' | '> ($ Id.VSub_DollarName '$eth_disabled_text') <' | '> ($ Id.VSub_DollarName '$eth_connected_text') <' '> <Id.Lit_BadBackslash '\\'> <'n Wifi : '> ($ Id.VSub_DollarName '$wlan_hardware_text') <' | '> ($ Id.VSub_DollarName '$wlan_disabled_text') <' | '> ($ Id.VSub_DollarName '$wlan_connected_text') <Id.Lit_BadBackslash '\\'> <'n IPv6 : '> ($ Id.VSub_DollarName '$ipv6_status_text') <Id.Lit_BadBackslash '\\'> <'n Internet : '> ($ Id.VSub_DollarName '$Internet_connected_text') <Id.Lit_BadBackslash '\\'> <'n Proxy : '> ($ Id.VSub_DollarName '$proxy_state_text') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<19>} {<65>} {<6>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [22247] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [22325] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <'Onboard WiFi'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$onboard_wifi_enabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<onboard_disable>} ) ] spids: [22371 22381] ) ] else_action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<onboard_enable>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [22409] ) ] ) (C {<whiptail>} {<--title>} {(DQ <'Reboot required'>)} {<--msgbox>} {(DQ <'NB: A reboot is required for the changes to take effect.'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<8>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [22444] ) ] ) ] spids: [22364 22367 22449 -1] ) (case_arm pat_list: [{<IPv6>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$ipv6_enabled')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Disable IPv6?'>)} {<--yesno>} { (DQ < 'IPv6 is currently enabled. Would you like to disable it?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'n - A system restart is required for settings to take effect.' > <Id.Lit_BadBackslash '\\'> <'n - Disabling IPv6 may break certain programs that rely on it.'> ) } {<--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 name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [22521] ) ] ) (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>} ) ) 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.Lit_ArithVarLike G_HW_ARCH> right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: < Id.Left_DollarParen '$(' > child: (C {<grep>} {<-ci>} {<-m1>} {(SQ <'ipv6.disable=1'>)} {<'/etc/default/grub'>} ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < 's/GRUB_CMDLINE_LINUX_DEFAULT=\\"/GRUB_CMDLINE_LINUX_DEFAULT=\\"ipv6.disable=1 /g' > ) } {<'/etc/default/grub'>} ) (C {<update-grub>}) ] spids: [22566 22590] ) ] ) ] spids: [22544 22558] ) ] else_action: [ (command.Simple words: [{<echo>} {(SQ <'blacklist ipv6'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { < '/etc/modprobe.d/99-dietpi-blacklist-ipv6.conf' > } ) ] do_fork: T ) ] ) (command.Simple words: [{<echo>} {(SQ <'Acquire::ForceIPv4 "true";'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv4' > ) } {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv4' > ) } {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv4'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wgetrc'>} ) ] do_fork: T ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [22718] ) ] ) ] spids: [22526 22540] ) ] ) ] spids: [22462 22472] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ <'Enable IPv6?'>)} {<--yesno>} { (DQ <'IPv6 is currently disabled. Would you like to enable it?'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - NB: A system restart is required for settings to take effect.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [22778] ) ] ) (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>} ) ) 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.Lit_ArithVarLike G_HW_ARCH> right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'s/ipv6.disable=1 //g'>)} {<'/etc/default/grub'>} ) (C {<update-grub>}) ] spids: [22801 22815] ) ] else_action: [ (command.Simple words: [ {<rm>} {<'/etc/modprobe.d/99-dietpi-blacklist-ipv6.conf'>} ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) (command.Simple words: [{<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv6' > ) } {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>} ) (C {<sed>} {<-i>} { (SQ < '/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv6' > ) } {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv6'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/wgetrc'>} ) ] do_fork: T ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [22931] ) ] ) ] spids: [22783 22797] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [22948] ) ] ) ] spids: [22453 22454 22953 -1] ) (case_arm pat_list: [{<Ethernet>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$ETH_HARDWARE')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <' Error: No Ethernet Hardware was found.'>)} spids: [22982] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < ' No Ethernet Hardware was found. You are most likely running a Pi Model A.' > ) } spids: [22988] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23024] ) ] ) ] spids: [22966 22978] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$ETH_DISABLED')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Ethernet is Disabled'>)} {<--yesno>} { (DQ < 'Ethernet must be enabled before settings can be changed.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to enable Ethernet now?'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) Connections may drop!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [23092] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DISABLED) op: assign_op.Equal rhs: {<0>} spids: [23119] ) ] ) (C {<Network_ApplyChanges>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [23126] ) ] ) ] spids: [23101 23115] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23139] ) ] ) ] ) ] spids: [23033 23043] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [23152] ) ] ) ] ) ] spids: [22957 22958 23161 -1] ) (case_arm pat_list: [{<WiFi>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$WIFI_DISABLED')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'WiFi is Disabled'>)} {<--yesno>} { (DQ <'WiFi must be enabled before settings can be changed.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to enable WiFi now? '> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) Connections may drop!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [23233] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DISABLED) op: assign_op.Equal rhs: {<0>} spids: [23256] ) ] ) (C {<Network_ApplyChanges>}) ] spids: [23238 23252] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23272] ) ] ) ] spids: [23174 23184] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$WIFI_HARDWARE')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <' Error: No Wifi Hardware was found. '>)} spids: [23297] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} { (DQ <'No supported Wifi Hardware was found.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nWould you like to disable WiFi? '> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) Connections may drop!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [23348] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DISABLED) op: assign_op.Equal rhs: {<1>} spids: [23371] ) ] ) (C {<Network_ApplyChanges>}) ] spids: [23353 23367] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23387] ) ] ) ] spids: [23281 23293] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [23396] ) ] ) ] ) ] spids: [23165 23166 23405 -1] ) (case_arm pat_list: [{<Test>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Press enter a URL address to test (eg: http://google.com)' > ) } {<8>} {<60>} {(DQ ($ Id.VSub_DollarName '$INTERNET_URL'))} {<--title>} {(DQ <'Internet Connection Test'>)} ] 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>} ) ] do_fork: T ) ) } spids: [23418] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [23453] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INTERNET_URL) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [23475] ) ] ) (C {<Network_CheckInternetConnection>}) ] spids: [23457 23471] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23491] ) ] ) ] spids: [23409 23410 23496 -1] ) (case_arm pat_list: [{<Proxy>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [23505] ) ] ) ] spids: [23500 23501 23510 -1] ) ] ) ] spids: [22336 22350] ) ] else_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 '$EXITONBACK')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23552] ) ] ) (C {<Menu_Exit>}) ] spids: [23530 23544] ) ] ) ] ) ] ) ) (command.ShFunction name: Menu_NetworkAdapters_Ethernet body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [23583] ) ] ) (C {<local>} {<Id.Lit_VarLike 'mode_current='> (SQ <DHCP>)}) (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 '$ETH_MODE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode_current) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [23617] ) ] ) ] spids: [23600 23614] ) ] ) (C {<local>} {<Id.Lit_VarLike 'mode_target='> (SQ <DHCP>)}) (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 '$ETH_MODE_TARGET')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode_target) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [23656] ) ] ) ] spids: [23639 23653] ) ] ) (C {<local>} {<Id.Lit_VarLike 'whip_options_total='> <0>}) (C {<local>} {<Id.Lit_VarLike 'description_text='> (SQ )}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Ethernet Network Options'>)} spids: [23687] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <'Change Mode'>)} {(DQ ($ Id.VSub_DollarName '$mode_target'))}] ) } spids: [23694] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (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 '$ETH_MODE_TARGET')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Copy>)} {(DQ <'Copy Current address to Static'>)}] ) } spids: [23734] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Ip'>)} {(DQ ($ Id.VSub_DollarName '$ETH_IP_STATIC'))} ] ) } spids: [23753] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Mask'>)} {(DQ ($ Id.VSub_DollarName '$ETH_MASK_STATIC'))} ] ) } spids: [23772] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Gateway'>)} {(DQ ($ Id.VSub_DollarName '$ETH_GATEWAY_STATIC'))} ] ) } spids: [23791] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static DNS'>)} {(DQ ($ Id.VSub_DollarName '$ETH_DNS_STATIC'))} ] ) } spids: [23810] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) ] spids: [23717 23731] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Disable>)} {(DQ <'Disable Ethernet adapter'>)}] ) } spids: [23832] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Apply>)} {(DQ <'Save Changes (Restart Networking)'>)}] ) } spids: [23851] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:description_text) op: assign_op.Equal rhs: { (DQ <' Current Details: '> <Id.Lit_BadBackslash '\\'> <'n - Mode = '> ($ Id.VSub_DollarName '$mode_current') <' '> <Id.Lit_BadBackslash '\\'> <'n - Ip = '> ($ Id.VSub_DollarName '$ETH_IP') <' '> <Id.Lit_BadBackslash '\\'> <'n - Mask = '> ($ Id.VSub_DollarName '$ETH_MASK') <Id.Lit_BadBackslash '\\'> <'n - Gateway = '> ($ Id.VSub_DollarName '$ETH_GATEWAY') <Id.Lit_BadBackslash '\\'> <'n - DNS = '> ($ Id.VSub_DollarName '$ETH_DNS') ) } spids: [23871] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName '$whip_options_total')} right: {($ Id.VSub_DollarName '$WHIP_OPTIONS_MAX_DISPLAY')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whip_options_total) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WHIP_OPTIONS_MAX_DISPLAY')} spids: [23912] ) ] ) ] spids: [23895 23909] ) ] ) (C {<local>} {<Id.Lit_VarLike 'description_line_count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {<Id.Lit_Digits 7>} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$description_text'))}) (C {<wc>} {<-l>}) ] negated: F ) ) } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 '$description_text'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$WHIP_SELECTION_PREVIOUS'))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$description_line_count')} right: {($ Id.VSub_DollarName '$whip_options_total')} ) ) } {<65>} {($ Id.VSub_DollarName '$whip_options_total')} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [23953] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [24033] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [24055] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <'Change Mode'>)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike ETH_MODE_TARGET> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$ETH_MODE_TARGET')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_MODE_TARGET) op: assign_op.Equal rhs: {<0>} spids: [24099] ) ] ) ] spids: [24082 24096] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24110] ) ] ) ] spids: [24069 24072 24114 -1] ) (case_arm pat_list: [{<Disable>}] action: [ (C {<whiptail>} {<--title>} {(DQ <'Ethernet is Enabled'>)} {<--yesno>} { (DQ <'Would you like to disable the Ethernet adapter?'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) All Ethernet connections will be dropped.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [24162] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ETH_DISABLED) op: assign_op.Equal rhs: {<1>} spids: [24187] ) ] ) (C {<Network_ApplyChanges>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [24194] ) ] ) ] spids: [24170 24184] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24205] ) ] ) ] ) ] spids: [24117 24118 24212 -1] ) (case_arm pat_list: [{<Apply>}] action: [ (C {<Ethernet_Reconnect>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24227] ) ] ) ] spids: [24215 24216 24231 -1] ) (case_arm pat_list: [{<Copy>}] action: [ (C {<Network_ETH_CopyCurrentToStatic>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24245] ) ] ) ] spids: [24234 24235 24249 -1] ) (case_arm pat_list: [{(DQ <'Static Ip'>)}] action: [ (C {<Change_StaticIp>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24267] ) ] ) ] spids: [24252 24255 24271 -1] ) (case_arm pat_list: [{(DQ <'Static Gateway'>)}] action: [ (C {<Change_StaticGateway>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24289] ) ] ) ] spids: [24274 24277 24293 -1] ) (case_arm pat_list: [{(DQ <'Static Mask'>)}] action: [ (C {<Change_StaticMask>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24311] ) ] ) ] spids: [24296 24299 24315 -1] ) (case_arm pat_list: [{(DQ <'Static DNS'>)}] action: [ (C {<Change_StaticDns>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<9>} spids: [24333] ) ] ) ] spids: [24318 24321 24337 -1] ) ] ) ] spids: [24037 24051] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_SSID) op: assign_op.Equal rhs: {(DQ )} spids: [24352] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_CHANNEL) op: assign_op.Equal rhs: {(DQ )} spids: [24357] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_KEY) op: assign_op.Equal rhs: {(DQ )} spids: [24362] ) ] ) (command.ShFunction name: WiFi_Monitor_Disable body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/systemd/system/dietpi-wifi-monitor.service'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<systemctl>} {<stop>} {<dietpi-wifi-monitor.service>}) (C {<rm>} {<'/etc/systemd/system/dietpi-wifi-monitor.service'>}) (C {<rm>} {<'/var/lib/dietpi/dietpi-wifi-monitor.sh'>}) (C {<systemctl>} {<daemon-reload>}) ] spids: [24375 24386] ) ] ) ] ) ) (command.ShFunction name: WiFi_Monitor_Enable body: (BraceGroup children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 24513 stdin_parts: [ <'#!/bin/bash\n'> <'{\n'> <'URL_PING='> <Id.Right_DoubleQuote '"'> ($ Id.VSub_DollarName '$WIFI_GATEWAY') <Id.Right_DoubleQuote '"'> <'\n'> <'ADAPTER='> <Id.Right_DoubleQuote '"'> <wlan> ($ Id.VSub_DollarName '$WIFI_INDEX') <Id.Right_DoubleQuote '"'> <'\n'> <'TICKRATE=10\n'> <'while true\n'> <'do\n'> <'G_DIETPI-NOTIFY 2 '> <Id.Right_DoubleQuote '"'> <'Checking connnection for: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'ping -I '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'ADAPTER -c 1 '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'URL_PING\n'> <'if (( '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'? != 0 )); then\n'> <'\n'> <'G_DIETPI-NOTIFY 2 '> <Id.Right_DoubleQuote '"'> <'Detected connection loss: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'ADAPTER. Reconnecting'> <Id.Right_DoubleQuote '"'> <'\n'> <'ifdown '> <Id.Right_DoubleQuote '"'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'sleep 1\n'> <'ifup '> <Id.Right_DoubleQuote '"'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'G_DIETPI-NOTIFY 0 \'Completed\'\n'> <'\n'> <'else\n'> <'\n'> <'G_DIETPI-NOTIFY 0 '> <Id.Right_DoubleQuote '"'> <'Connection '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <ADAPTER> <Id.Right_DoubleQuote '"'> <'\n'> <'\n'> <'fi\n'> <'\n'> <'sleep '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'TICKRATE\n'> <'\n'> <'done\n'> <'\n'> <'exit 0\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/lib/dietpi/dietpi-wifi-monitor.sh'>} ) ] do_fork: T ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/var/lib/dietpi/dietpi-wifi-monitor.sh'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 24544 stdin_parts: [ <'[Unit]\n'> < 'Description=Monitors loss of WiFi connection and automatically reconnects\n' > <'After=network.target network-online.target\n'> <'[Service]\n'> <'Type=simple\n'> <'ExecStart=/bin/bash -c /var/lib/dietpi/dietpi-wifi-monitor.sh\n'> <'[Install]\n'> <'WantedBy=multi-user.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/dietpi-wifi-monitor.service'>} ) ] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<systemctl>} {<enable>} {<dietpi-wifi-monitor.service>}) (C {<systemctl>} {<start>} {<dietpi-wifi-monitor.service>}) ] ) ) (command.ShFunction name: Menu_NetworkAdapters_Wifi body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [24581] ) ] ) (C {<local>} {<Id.Lit_VarLike 'whip_options_total='> <0>}) (C {<local>} {<Id.Lit_VarLike 'description_text='> (SQ )}) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (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 '$WIFI_HOTSPOT')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - WiFi Hotspot'>)} spids: [24629] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$HOTSPOT_SSID'))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_SSID) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/hostapd/hostapd.conf'>}) (C {<grep>} {<-m1>} {(SQ <'^ssid='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [24659] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_CHANNEL) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/hostapd/hostapd.conf'>}) (C {<grep>} {<-m1>} {(SQ <'^channel='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [24685] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_KEY) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/etc/hostapd/hostapd.conf'>}) (C {<grep>} {<-m1>} {(SQ <'^wpa_passphrase='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [24711] ) ] ) ] spids: [24640 24656] ) ] ) (C {<local>} {<Id.Lit_VarLike 'hotspot_active_state='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<hostapd>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <active>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'hotspot_status_text='> (SQ <Online>)}) (C {<local>} {<Id.Lit_VarLike 'hotspot_active_state_text='> (SQ <': Enabled, select to turn off hotspot'>) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$hotspot_active_state')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hotspot_active_state_text) op: assign_op.Equal rhs: {(SQ <': Disabled, select to turn on hotspot'>)} spids: [24802] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hotspot_status_text) op: assign_op.Equal rhs: {(SQ <Offline>)} spids: [24808] ) ] ) ] spids: [24786 24798] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <SSID>)} {(DQ <'Change the wireless hotspot name'>)}] ) } spids: [24819] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Channel>)} {(DQ <'Change the wireless channel'>)}] ) } spids: [24838] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Key>)} {(DQ <'Change the access key required to connect'>)} ] ) } spids: [24857] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <State>)} { (DQ <': '> ($ Id.VSub_DollarName '$hotspot_active_state_text')) } ] ) } spids: [24876] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:description_text) op: assign_op.Equal rhs: { (DQ <'SSID : '> ($ Id.VSub_DollarName '$HOTSPOT_SSID') <Id.Lit_BadBackslash '\\'> <'nChannel : '> ($ Id.VSub_DollarName '$HOTSPOT_CHANNEL') <Id.Lit_BadBackslash '\\'> <'nKey : '> ($ Id.VSub_DollarName '$HOTSPOT_KEY') <Id.Lit_BadBackslash '\\'> <'nStatus : '> ($ Id.VSub_DollarName '$hotspot_status_text') ) } spids: [24897] ) ] ) ] spids: [24611 24625] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Wireless Network Options'>)} spids: [24922] ) ] ) (C {<local>} {<Id.Lit_VarLike 'mode_current='> (SQ <DHCP>)}) (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 '$WIFI_MODE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode_current) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [24959] ) ] ) ] spids: [24941 24955] ) ] ) (C {<local>} {<Id.Lit_VarLike 'mode_target='> (SQ <DHCP>)}) (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 '$WIFI_MODE_TARGET')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:mode_target) op: assign_op.Equal rhs: {(SQ <STATIC>)} spids: [25000] ) ] ) ] spids: [24982 24996] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Scan>)} {(DQ <'Scan and Connect'>)}] ) } spids: [25011] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Manual>)} {(DQ <'Manually Set Wireless Details'>)}] ) } spids: [25030] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: {($ Id.VSub_DollarName '$WIFI_CONNECTED')} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<dietpi-wifi-monitor.service>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^active'>)}) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'wifi_auto_reconnect_text='> (SQ <Disabled>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_AUTO_RECONNECT_ACTIVE) op: assign_op.Equal rhs: {<0>} spids: [25095] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<dietpi-wifi-monitor.service>} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^active'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_AUTO_RECONNECT_ACTIVE) op: assign_op.Equal rhs: {<1>} spids: [25131] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:wifi_auto_reconnect_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [25135] ) ] ) ] spids: [25099 25127] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Auto Reconnect'>)} { (DQ <': '> ($ Id.VSub_DollarName '$wifi_auto_reconnect_text') ) } ] ) } spids: [25146] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) ] spids: [25050 25083] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Change Mode'>)} {(DQ <': '> ($ Id.VSub_DollarName '$mode_target'))} ] ) } spids: [25171] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (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 '$WIFI_MODE_TARGET')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Copy>)} {(DQ <'Copy Current address to Static'>)}] ) } spids: [25214] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Ip'>)} {(DQ <': '> ($ Id.VSub_DollarName '$WIFI_IP_STATIC'))} ] ) } spids: [25233] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Mask'>)} {(DQ <': '> ($ Id.VSub_DollarName '$WIFI_MASK_STATIC'))} ] ) } spids: [25253] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static Gateway'>)} {(DQ <': '> ($ Id.VSub_DollarName '$WIFI_GATEWAY_STATIC'))} ] ) } spids: [25273] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'Static DNS'>)} {(DQ <': '> ($ Id.VSub_DollarName '$WIFI_DNS_STATIC'))} ] ) } spids: [25293] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) ] spids: [25196 25210] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Disable>)} {(DQ <'Disable WiFi adapter'>)}] ) } spids: [25318] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:description_text) op: assign_op.Equal rhs: { (DQ <' Current Details: '> <Id.Lit_BadBackslash '\\'> <'n - SSID = '> ($ Id.VSub_DollarName '$WIFI_SSID') <' | '> ($ Id.VSub_DollarName '$WIFI_BITRATE') <' Mbit | Strength: '> ($ Id.VSub_DollarName '$WIFI_SIGNALSTRENGTH') <Id.Lit_BadBackslash '\\'> <'n - KEY = '> ($ Id.VSub_DollarName '$WIFI_KEY') <' '> <Id.Lit_BadBackslash '\\'> <'n - Mode = '> ($ Id.VSub_DollarName '$mode_current') <' '> <Id.Lit_BadBackslash '\\'> <'n - Ip = '> ($ Id.VSub_DollarName '$WIFI_IP') <Id.Lit_BadBackslash '\\'> <'n - Mask = '> ($ Id.VSub_DollarName '$WIFI_MASK') <Id.Lit_BadBackslash '\\'> <'n - DNS = '> ($ Id.VSub_DollarName '$WIFI_DNS') ) } spids: [25338] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE'))} {<Id.Lit_Equals '='>} {(DQ <00>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Country>)} { (DQ <'Not set, please configure ('> ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE') <')'> ) } ] ) } spids: [25397] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) ] spids: [25377 25394] ) ] else_action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Country>)} {(DQ <': '> ($ Id.VSub_DollarName '$WIFI_COUNTRYCODE'))} ] ) } spids: [25421] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Apply>)} {(DQ <'Save Changes (Restart Networking)'>)}] ) } spids: [25445] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike whip_options_total> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName '$whip_options_total')} right: {($ Id.VSub_DollarName '$WHIP_OPTIONS_MAX_DISPLAY')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whip_options_total) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$WHIP_OPTIONS_MAX_DISPLAY')} spids: [25482] ) ] ) ] spids: [25465 25479] ) ] ) (C {<local>} {<Id.Lit_VarLike 'description_line_count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {<Id.Lit_Digits 7>} right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$description_text'))}) (C {<wc>} {<-l>}) ] negated: F ) ) } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 '$description_text'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$WHIP_SELECTION_PREVIOUS'))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName '$description_line_count')} right: {($ Id.VSub_DollarName '$whip_options_total')} ) ) } {<65>} {($ Id.VSub_DollarName '$whip_options_total')} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [25523] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [25603] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_SELECTION_PREVIOUS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [25625] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(SQ <'Auto Reconnect'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$WIFI_AUTO_RECONNECT_ACTIVE' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<WiFi_Monitor_Enable>})] spids: [25646 25658] ) ] else_action: [(C {<WiFi_Monitor_Disable>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [25682] ) ] ) ] spids: [25639 25642 25687 -1] ) (case_arm pat_list: [{<Key>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a key/password for the WiFi hotspot' > <Id.Lit_BadBackslash '\\'> <'n - NB: Minimum of 8 characters'> ) } {<9>} {<70>} {(DQ ($ Id.VSub_DollarName '$HOTSPOT_KEY'))} {<--title>} {(DQ <'Change Hotspot Access Key'>)} ] 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>} ) ] do_fork: T ) ) } spids: [25694] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [25731] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_KEY) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [25752] ) ] ) ] spids: [25735 25749] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [25763] ) ] ) ] spids: [25690 25691 25767 -1] ) (case_arm pat_list: [{<SSID>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} {(DQ <'Please enter a SSID for the WiFi hotspot'>)} {<8>} {<65>} {(DQ ($ Id.VSub_DollarName '$HOTSPOT_SSID'))} {<--title>} {(DQ <'Change Hotspot SSID'>)} ] 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>} ) ] do_fork: T ) ) } spids: [25774] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [25809] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_SSID) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [25830] ) ] ) ] spids: [25813 25827] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [25842] ) ] ) ] spids: [25770 25771 25846 -1] ) (case_arm pat_list: [{<Channel>}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (C {<local>} {<Id.Lit_VarLike 'channel_mhz='> <2412>}) (C {<local>} {<Id.Lit_VarLike 'channel_min='> <1>}) (C {<local>} {<Id.Lit_VarLike 'channel_max='> <13>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$channel_min')} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$channel_max')} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$i') <' '>)} { (DQ ($ Id.VSub_DollarName '$channel_mhz') <' MHz'>) } ] ) } spids: [25904] ) ] ) (command.DParen child: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: <Id.Lit_ArithVarLike channel_mhz> right: {<Id.Lit_Digits 5>} ) ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Change Hotspot Channel'>)} {<--menu>} {(DQ <'Please select a WiFi channel for the hotspot.'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<60>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [25933] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [25987] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOTSPOT_CHANNEL) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [26015] ) ] ) ] spids: [25998 26012] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26027] ) ] ) ] spids: [25849 25850 26031 -1] ) (case_arm pat_list: [{<Country>}] action: [ (C {<Change_WifiCountryCode>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26045] ) ] ) ] spids: [26034 26035 26049 -1] ) (case_arm pat_list: [{<Disable>}] action: [ (C {<whiptail>} {<--title>} {(DQ <'WiFi is Enabled'>)} {<--yesno>} { (DQ <'Would you like to disable the WiFi adapter?'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) All WiFi connections will be dropped.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<60>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [26097] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_DISABLED) op: assign_op.Equal rhs: {<1>} spids: [26123] ) ] ) (C {<WiFi_Monitor_Disable>}) (C {<Network_ApplyChanges>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [26134] ) ] ) ] spids: [26105 26119] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26145] ) ] ) ] ) ] spids: [26052 26053 26152 -1] ) (case_arm pat_list: [{<Scan>}] action: [ (C {<Scan_Wifi>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26166] ) ] ) ] spids: [26155 26156 26170 -1] ) (case_arm pat_list: [{<Manual>}] action: [ (C {<Change_WifiSsid>}) (C {<Change_WifiKey>}) (C {<Wifi_Reconnect>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26190] ) ] ) ] spids: [26173 26174 26194 -1] ) (case_arm pat_list: [{(DQ <'Change Mode'>)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike WIFI_MODE_TARGET> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$WIFI_MODE_TARGET')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WIFI_MODE_TARGET) op: assign_op.Equal rhs: {<0>} spids: [26227] ) ] ) ] spids: [26210 26224] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26238] ) ] ) ] spids: [26197 26200 26242 -1] ) (case_arm pat_list: [{<Apply>}] 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 '$WIFI_HOTSPOT')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ <'/SOFTWARE_WIFI_HOTSPOT_SSID=/c'> <Id.Lit_BadBackslash '\\'> <'SOFTWARE_WIFI_HOTSPOT_SSID='> ($ Id.VSub_DollarName '$HOTSPOT_SSID') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/SOFTWARE_WIFI_HOTSPOT_CHANNEL=/c'> <Id.Lit_BadBackslash '\\'> <'SOFTWARE_WIFI_HOTSPOT_CHANNEL='> ($ Id.VSub_DollarName '$HOTSPOT_CHANNEL') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/SOFTWARE_WIFI_HOTSPOT_KEY=/c'> <Id.Lit_BadBackslash '\\'> <'SOFTWARE_WIFI_HOTSPOT_KEY='> ($ Id.VSub_DollarName '$HOTSPOT_KEY') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/ssid=/c'> <Id.Lit_BadBackslash '\\'> <'ssid='> ($ Id.VSub_DollarName '$HOTSPOT_SSID') ) } {<'/etc/hostapd/hostapd.conf'>} ) (C {<sed>} {<-i>} { (DQ <'/channel=/c'> <Id.Lit_BadBackslash '\\'> <'channel='> ($ Id.VSub_DollarName '$HOTSPOT_CHANNEL') ) } {<'/etc/hostapd/hostapd.conf'>} ) (C {<sed>} {<-i>} { (DQ <'/wpa_passphrase=/c'> <Id.Lit_BadBackslash '\\'> <'wpa_passphrase='> ($ Id.VSub_DollarName '$HOTSPOT_KEY') ) } {<'/etc/hostapd/hostapd.conf'>} ) (C {<Network_ApplyChanges>}) ] spids: [26249 26263] ) ] else_action: [(C {<Wifi_Reconnect>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26382] ) ] ) ] spids: [26245 26246 26386 -1] ) (case_arm pat_list: [{<Copy>}] action: [ (C {<Network_WIFI_CopyCurrentToStatic>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26400] ) ] ) ] spids: [26389 26390 26404 -1] ) (case_arm pat_list: [{(DQ <'Static Ip'>)}] action: [ (C {<Change_StaticIp>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26422] ) ] ) ] spids: [26407 26410 26426 -1] ) (case_arm pat_list: [{(DQ <'Static Gateway'>)}] action: [ (C {<Change_StaticGateway>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26444] ) ] ) ] spids: [26429 26432 26448 -1] ) (case_arm pat_list: [{(DQ <'Static Mask'>)}] action: [ (C {<Change_StaticMask>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26466] ) ] ) ] spids: [26451 26454 26470 -1] ) (case_arm pat_list: [{(DQ <'Static DNS'>)}] action: [ (C {<Change_StaticDns>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26488] ) ] ) ] spids: [26473 26476 26492 -1] ) (case_arm pat_list: [{<State>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$hotspot_active_state')} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<systemctl>} {<stop>} {<hostapd>})] spids: [26500 26510] ) ] else_action: [(C {<systemctl>} {<start>} {<hostapd>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<10>} spids: [26542] ) ] ) ] spids: [26495 26496 26547 -1] ) ] ) ] spids: [25607 25621] ) ] ) ] ) ) (command.ShFunction name: Menu_Tools body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [26572] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Tools'>)} spids: [26577] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<70>} {<2>} {(DQ <Benchmarks>)} {(DQ <'Filesystem and RAM benchmarks.'>)} {(DQ <'Stress Test'>)} {(DQ <'CPU Burn and system stability tests (CPU/IO/RAM)'>)} ] 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>} ) ] do_fork: T ) ) } spids: [26583] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [26648] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<Benchmarks>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<12>} spids: [26685] ) ] ) ] spids: [26680 26681 26690 -1] ) (case_arm pat_list: [{(SQ <'Stress Test'>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<15>} spids: [26701] ) ] ) ] spids: [26694 26697 26706 -1] ) ] ) ] spids: [26652 26666] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPUBENCH_TIME) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26726] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPUBENCH_INT_MAX) op: assign_op.Equal rhs: {<1000000>} spids: [26732] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SD_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26736] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SD_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26742] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USB_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26748] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USB_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26754] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RAM_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26760] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RAM_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26766] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUSTOM_WRITE) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26772] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUSTOM_READ) op: assign_op.Equal rhs: {(SQ <'Not Tested'>)} spids: [26778] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_CUSTOM_MOUNT) op: assign_op.Equal rhs: {(SQ )} spids: [26784] ) ] ) (command.ShFunction name: Run_FilesystemBenchmark body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'device_index='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'benchmark_temp_file='> (DQ )}) (C {<local>} {<Id.Lit_VarLike 'read_speed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'write_speed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'run_benchmark='> <1>}) (C {<local>} {<Id.Lit_VarLike 'benchmark_filesize='> <0>}) (C {<local>} {<Id.Lit_VarLike 'benchmark_filesystem_freespace='> <0>}) (C {<local>} {<Id.Lit_VarLike 'benchmark_filesystem_offset='> <10>}) (C {<local>} {<Id.Lit_VarLike 'text_info_test_name='> (DQ )}) (C {<local>} {<Id.Lit_VarLike 'min_benchmark_size='> <10>}) (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 '$device_index')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:text_info_test_name) op: assign_op.Equal rhs: {(SQ <RootFS>)} spids: [26886] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_temp_file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$HOME') <'/benchmark.file'>)} spids: [26892] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_filesystem_freespace) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<4p>} {<'/DietPi/dietpi/.hw_model'>} ) ) ) } ) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')} ) ) } spids: [26899] ) ] ) ] spids: [26868 26882] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$device_index')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:text_info_test_name) op: assign_op.Equal rhs: {(SQ <'USB harddrive'>)} spids: [26961] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_temp_file) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-P>}) (C {<grep>} {<-m1>} {(SQ <'^/dev/sda1'>)}) (C {<awk>} {(SQ <'{print $6}'>)}) ] negated: F ) ) <'/benchmark.file'> ) } spids: [26967] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_filesystem_freespace) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'^/dev/sda1'>)}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')} ) ) } spids: [26996] ) ] ) ] spids: [26943 26957] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$device_index')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:text_info_test_name) op: assign_op.Equal rhs: {(SQ <RAM>)} spids: [27050] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_temp_file) op: assign_op.Equal rhs: {(SQ <'/tmp/benchmark.file'>)} spids: [27056] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_filesystem_freespace) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} {(SQ <'/tmp'>)}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')} ) ) } spids: [27062] ) ] ) ] spids: [27032 27046] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$device_index')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:text_info_test_name) op: assign_op.Equal rhs: {(SQ <Custom>)} spids: [27116] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_temp_file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$FP_CUSTOM_MOUNT') <'/benchmark.file'>)} spids: [27122] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_filesystem_freespace) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-m>}) (C {<grep>} {<-m1>} { (DQ ($ Id.VSub_DollarName '$FP_CUSTOM_MOUNT') <Id.Lit_Dollar '$'> ) } ) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } right: {($ Id.VSub_DollarName '$benchmark_filesystem_offset')} ) ) } spids: [27129] ) ] ) ] spids: [27098 27112] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$benchmark_filesystem_freespace')} right: {($ Id.VSub_DollarName '$min_benchmark_size')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_benchmark) op: assign_op.Equal rhs: {<0>} spids: [27192] ) ] ) (C {<echo>} {<-e>} { (DQ <'(EE): Insufficient space to run '> ($ Id.VSub_DollarName '$text_info_test_name') <' filesystem benchmark.'> <Id.Lit_BadBackslash '\\'> <'n - Available space: '> ($ Id.VSub_DollarName '$benchmark_filesystem_freespace') <' MB'> <Id.Lit_BadBackslash '\\'> <'n - Space required: '> ($ Id.VSub_DollarName '$min_benchmark_size') <' MB'> ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) ] spids: [27174 27188] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:benchmark_filesize) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ < 'Please enter a filesize test value (MB). A value of 100 is recommended.' > <Id.Lit_BadBackslash '\\'> <'n- Minimum value: '> ($ Id.VSub_DollarName '$min_benchmark_size') <Id.Lit_BadBackslash '\\'> <'n- Maximum possible value: '> ($ Id.VSub_DollarName '$benchmark_filesystem_freespace') ) } {<10>} {<70>} {(DQ <100>)} {<--title>} {(DQ <'Benchmark File Size (MB)'>)} ] 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>} ) ] do_fork: T ) ) } spids: [27241] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [27282] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$benchmark_filesize')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName '$benchmark_filesize')} right: {<Id.Lit_Digits 0>} ) ) ] ) 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_Less left: { ($ Id.VSub_DollarName '$benchmark_filesystem_freespace' ) } right: { ($ Id.VSub_DollarName '$benchmark_filesize') } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_benchmark) op: assign_op.Equal rhs: {<0>} spids: [27367] ) ] ) (C {<echo>} {<-e>} { (DQ <'(EE): Insufficient space to run '> ($ Id.VSub_DollarName '$text_info_test_name') <' filesystem benchmark.'> <Id.Lit_BadBackslash '\\'> <'n - Requested benchmark size: '> ($ Id.VSub_DollarName '$benchmark_filesize') <' MB'> <Id.Lit_BadBackslash '\\'> <'n - Available space for benchmark: '> ($ Id.VSub_DollarName '$benchmark_filesystem_freespace') <' MB'> ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) ] spids: [27349 27363] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: { ($ Id.VSub_DollarName '$benchmark_filesize') } right: { ($ Id.VSub_DollarName '$min_benchmark_size') } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_benchmark) op: assign_op.Equal rhs: {<0>} spids: [27430] ) ] ) (C {<echo>} {<-e>} { (DQ <'(EE): Your requested benchmark size of '> ($ Id.VSub_DollarName '$benchmark_filesize') <' MB is too small.'> ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) ] spids: [27412 27426] ) ] ) ] spids: [27308 27341] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_benchmark) op: assign_op.Equal rhs: {<0>} spids: [27475] ) ] ) ] ) ] spids: [27286 27300] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_benchmark) op: assign_op.Equal rhs: {<0>} spids: [27492] ) ] ) ] ) ] ) (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 '$run_benchmark')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Performing '> ($ Id.VSub_DollarName '$text_info_test_name') <' benchmark, please wait...'> ) } ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Testing Seq Write Speed ('> ($ Id.VSub_DollarName '$benchmark_filesize') <' MB)'> ) } ) (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 '$G_DISTRO')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:write_speed) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName '$benchmark_filesize' ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> ($ Id.VSub_DollarName '$benchmark_temp_file') } {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $8, $9}'>)}) ] negated: F ) ) } spids: [27569] ) ] ) ] spids: [27551 27565] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_DISTRO')} right: {<Id.Lit_Digits 4>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:write_speed) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName '$benchmark_filesize' ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> ($ Id.VSub_DollarName '$benchmark_temp_file') } {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $10, $11}'>)}) ] negated: F ) ) } spids: [27641] ) ] ) ] spids: [27623 27637] ) ] ) (C {<sync>}) (command.Simple words: [{<echo>} {<3>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/proc/sys/vm/drop_caches'>} ) ] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Testing Seq Read Speed ('> ($ Id.VSub_DollarName '$benchmark_filesize') <' MB)'> ) } ) (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 '$G_DISTRO')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:read_speed) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName '$benchmark_filesize' ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName '$benchmark_temp_file') } {<Id.Lit_VarLike 'of='> <'/dev/zero'>} {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $8, $9}'>)}) ] negated: F ) ) } spids: [27745] ) ] ) ] spids: [27727 27741] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_DISTRO')} right: {<Id.Lit_Digits 4>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:read_speed) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<dd>} {<Id.Lit_VarLike 'bs='> <4K>} {<Id.Lit_VarLike 'count='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: { ($ Id.VSub_DollarName '$benchmark_filesize' ) } right: {<Id.Lit_Digits 1024>} ) right: {<Id.Lit_Digits 4>} ) ) } {<Id.Lit_VarLike 'if='> ($ Id.VSub_DollarName '$benchmark_temp_file') } {<Id.Lit_VarLike 'of='> <'/dev/zero'>} {<Id.Lit_VarLike 'conv='> <fdatasync>} ] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<grep>} {(SQ <MB>)}) (C {<awk>} {(SQ <'{print $10, $11}'>)}) ] negated: F ) ) } spids: [27817] ) ] ) ] spids: [27799 27813] ) ] ) (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 '$device_index')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SD_WRITE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$write_speed')} spids: [27897] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SD_READ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$read_speed')} spids: [27901] ) ] ) ] spids: [27879 27893] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$device_index')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USB_WRITE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$write_speed')} spids: [27924] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USB_READ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$read_speed')} spids: [27928] ) ] ) ] spids: [27906 27920] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$device_index')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RAM_WRITE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$write_speed')} spids: [27951] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RAM_READ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$read_speed')} spids: [27955] ) ] ) ] spids: [27933 27947] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$device_index')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUSTOM_WRITE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$write_speed')} spids: [27978] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CUSTOM_READ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$read_speed')} spids: [27982] ) ] ) ] spids: [27960 27974] ) ] ) ] spids: [27509 27523] ) ] ) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName '$benchmark_temp_file'))}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) ) (command.ShFunction name: Run_CPUBenchmark body: (BraceGroup children: [ (C {<'/DietPi/dietpi/dietpi-services'>} {<stop>}) (C {<G_DIETPI-NOTIFY>} {<0>} { (DQ <'Running DietPi-CPU Benchmark with max value of 1000000 over '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<nproc>} {<--all>}) ) <' cores, please wait...'> ) } ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 28213 stdin_parts: [ <'#!/bin/bash\n'> <'target_max_int='> ($ Id.VSub_DollarName '$CPUBENCH_INT_MAX') <'\n'> <'cores='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'(nproc --all)\n'> <'int_split='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'(('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'target_max_int / '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'cores ))\n'> <'aStart_Int=()\n'> <'aEnd_Int=()\n'> <'\n'> <'#Split the max int target based on total cores\n'> <'for (( i=0; i<'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'cores; i++ ))\n'> <'do\n'> <'\n'> <' aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i]='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'(( ('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i + 1) * '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'int_split ))\n'> <' aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i]='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'(( '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i]} - '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'int_split ))\n'> <'\n'> <' echo '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i]} '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i]}\n'> <'\n'> <'done\n'> <'\n'> <'\n'> <'Run_Bench()\n'> <'{\n'> <'\n'> <' while (( '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'1]} < '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'{aEnd_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'1]} ))\n'> <' do\n'> <'\n'> <' ((aStart_Int['> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'1]++))\n'> <'\n'> <' done\n'> <'\n'> <'}\n'> <'\n'> <'#Launch benchmark threads\n'> <'for (( i=0; i<'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'cores; i++ ))\n'> <'do\n'> <'\n'> <' Run_Bench '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'i &\n'> <'\n'> <'done\n'> <'\n'> <'#Wait for jobs to finish\n'> <'for job in '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <'jobs -p'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) <'\n'> <'do\n'> <' echo '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'job\n'> <' wait '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ) <'job\n'> <'done\n'> <'\n'> <'#delete[]\n'> <'unset aStart_Int\n'> <'unset aEnd_Int\n'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/tmp/dietpi-bench'>} ) ] do_fork: T ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/tmp/dietpi-bench'>}) (BraceGroup children: [ (command.Sentence child: (command.TimeBlock pipeline:(C {<-p>} {<'/tmp/dietpi-bench'>})) terminator: <Id.Op_Semi _> ) ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/tmp/dietpi-bench_result'>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPUBENCH_TIME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <real>)} {<'/tmp/dietpi-bench_result'>}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [28241] ) ] ) (C {<'/DietPi/dietpi/dietpi-services'>} {<start>}) ] ) ) (command.ShFunction name: Menu_FilesystemBenchmark body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<11>} spids: [28287] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Benchmarks'>)} spids: [28292] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <'CPU : Total time '> ($ Id.VSub_DollarName '$CPUBENCH_INT_MAX') <' int = '> ($ Id.VSub_DollarName '$CPUBENCH_TIME') <' seconds'> <Id.Lit_BadBackslash '\\'> <n> <'RAM : Write = '> ($ Id.VSub_DollarName '$RAM_WRITE') <' | Read = '> ($ Id.VSub_DollarName '$RAM_READ') <Id.Lit_BadBackslash '\\'> <n> <'RootFS : Write = '> ($ Id.VSub_DollarName '$SD_WRITE') <' | Read = '> ($ Id.VSub_DollarName '$SD_READ') <' '> <Id.Lit_BadBackslash '\\'> <n> <'USB Drive : Write = '> ($ Id.VSub_DollarName '$USB_WRITE') <' | Read = '> ($ Id.VSub_DollarName '$USB_READ') <Id.Lit_BadBackslash '\\'> <n> <'Custom : Write = '> ($ Id.VSub_DollarName '$CUSTOM_WRITE') <' | Read = '> ($ Id.VSub_DollarName '$CUSTOM_READ') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<19>} {<70>} {<7>} {(DQ )} { (DQ < '─── Performance ─────────────────────────────' > ) } {(DQ <CPU>)} {(DQ <'Benchmark CPU performance.'>)} {(DQ <RAM>)} {(DQ <'Benchmark RAM performance.'>)} {(DQ )} { (DQ < '─── Filesystem ──────────────────────────────' > ) } {(DQ <RootFS>)} {(DQ <'Benchmark SD/EMMC IO performance.'>)} {(DQ <'USB Drive'>)} {(DQ <'Benchmark USB drive IO performance.'>)} {(DQ <Custom>)} {(DQ <'Benchmark from a selection of mounted devices.'>)} ] 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>} ) ] do_fork: T ) ) } spids: [28298] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <CPU>)}] action: [ (C {<Run_CPUBenchmark>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<12>} spids: [28472] ) ] ) ] spids: [28457 28460 28477 -1] ) (case_arm pat_list: [{(DQ <RootFS>)}] action: [ (C {<Run_FilesystemBenchmark>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<12>} spids: [28498] ) ] ) ] spids: [28481 28484 28503 -1] ) (case_arm pat_list: [{(DQ <'USB Drive'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-P>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^/dev/sda1'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_FilesystemBenchmark>} {<1>})] spids: [28518 28544] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ <'No USB Drive was found'>)} {<--msgbox>} { (DQ <'No USB Drive was found, /dev/sda1 is not available.'> <Id.Lit_BadBackslash '\\'> <'nThe test has been aborted.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<10>} {<60>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<12>} spids: [28598] ) ] ) ] spids: [28507 28510 28603 -1] ) (case_arm pat_list: [{(DQ <Custom>)}] action: [ (C {<'/DietPi/dietpi/dietpi-drive_manager'>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_CUSTOM_MOUNT) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/tmp/dietpi-drive_manager_selmnt'>}) ) ) } spids: [28619] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$FP_CUSTOM_MOUNT'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_FilesystemBenchmark>} {<3>})] spids: [28630 28643] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<12>} spids: [28661] ) ] ) ] spids: [28607 28610 28666 -1] ) (case_arm pat_list: [{(DQ <RAM>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>}) (C {<grep>} {(SQ <'[[:space:]]/tmp'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^tmpfs[[:space:]]'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_FilesystemBenchmark>} {<2>})] spids: [28681 28713] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} { (DQ <'Unable to run RAM benchmark, as /tmp is not mounted as tmpfs.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nThis mount is disabled automatically on <=512MB devices to prevent out of memory errors, please see here for more info:' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'n - https://github.com/Fourdee/DietPi/issues/1027'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<70>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<12>} spids: [28769] ) ] ) ] spids: [28670 28673 28774 -1] ) ] ) ] ) ) (command.ShFunction name: Reset_Overclocking body: (BraceGroup children: [ (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\#over_voltage=0'>)} {<'/DietPi/config.txt'>}) (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 '$G_HW_MODEL')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=1200'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=400'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=450'>)} {<'/DietPi/config.txt'>}) ] spids: [28804 28818] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=900'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=250'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=450'>)} {<'/DietPi/config.txt'>}) ] spids: [28856 28870] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=700'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=250'>)} {<'/DietPi/config.txt'>}) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=400'>)} {<'/DietPi/config.txt'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi/.hw_model'>}) (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'rpi zero'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\#arm_freq=1000'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=400'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/sdram_freq=/c\\#sdram_freq=450'>)} {<'/DietPi/config.txt'>} ) ] spids: [28964 29002] ) ] ) ] spids: [28908 28922] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [29048] ) ] ) ] ) ) (command.ShFunction name: Warning_Overclocking body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Warning! Continue with overclocking?'>)} spids: [29063] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'Your selected overclocking choice may void the warranty on this device. Do you wish to continue?\\n\\nUse of this tool is at your own risk. DietPi will not be held responsable for any damages due to overclocking.\\n\\nAlthough DietPi overclocks are tested for stability, results are not guaranteed and may differ from device.' > ) } spids: [29069] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} ) ] ) ) (command.ShFunction name: Menu_Overclock body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [29130] ) ] ) (C {<local>} {<Id.Lit_VarLike 'over_voltage_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'over_voltage='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#over_voltage='>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'arm_freq_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'arm_freq='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#arm_freq='>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'core_freq_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'core_freq='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#core_freq='>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'sdram_freq_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'sdram_freq='>)} {<'/DietPi/config.txt'>}) (C {<tr>} {<-d>} {(SQ <'#sdram_freq='>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Overclocking'>)} spids: [29244] ) ] ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$G_HW_MODEL'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi/.hw_model'>}) (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'rpi zero'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$arm_freq_value') <' MHz ARM | '> ($ Id.VSub_DollarName '$core_freq_value') <' MHz core | '> ($ Id.VSub_DollarName '$sdram_freq_value') <' MHz SDRAM | '> ($ Id.VSub_DollarName '$over_voltage_value') <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<75>} {<4>} {(DQ <none>)} { (DQ < ' 1000 MHz ARM | 400 MHz core | 450 MHz SDRAM | 0 overvolt' > ) } ] 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>} ) ] do_fork: T ) ) } spids: [29310] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29399] ) ] ) ] spids: [29387 29388 29404 -1] ) ] ) ] spids: [29268 29306] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$arm_freq_value') <' MHz ARM | '> ($ Id.VSub_DollarName '$core_freq_value') <' MHz core | '> ($ Id.VSub_DollarName '$sdram_freq_value') <' MHz SDRAM | '> ($ Id.VSub_DollarName '$over_voltage_value') <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} {<4>} {(DQ <none>)} { (DQ < ' 700 MHz ARM | 250 MHz core | 400 MHz SDRAM | 0 overvolt' > ) } {(DQ <safe>)} { (DQ < ' 900 MHz ARM | 250 MHz core | 400 MHz SDRAM | 2 overvolt' > ) } {(DQ <high>)} { (DQ < ' 900 MHz ARM | 500 MHz core | 400 MHz SDRAM | 4 overvolt' > ) } {(DQ <extreme>)} { (DQ < '1025 MHz ARM | 500 MHz core | 400 MHz SDRAM | 6 overvolt' > ) } ] 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>} ) ] do_fork: T ) ) } spids: [29429] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29548] ) ] ) ] spids: [29536 29537 29553 -1] ) (case_arm pat_list: [{<safe>}] action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=2'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=900'>)} {<'/DietPi/config.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29590] ) ] ) ] spids: [29556 29557 29595 -1] ) (case_arm pat_list: [{<high>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [29605] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=4'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=900'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [29609 29623] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29670] ) ] ) ] spids: [29598 29599 29675 -1] ) (case_arm pat_list: [{<extreme>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [29685] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=6'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1025'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [29689 29703] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29750] ) ] ) ] spids: [29678 29679 29755 -1] ) ] ) ] spids: [29411 29425] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$arm_freq_value') <' MHz ARM | '> ($ Id.VSub_DollarName '$core_freq_value') <' MHz core | '> ($ Id.VSub_DollarName '$sdram_freq_value') <' MHz SDRAM | '> ($ Id.VSub_DollarName '$over_voltage_value') <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<75>} {<4>} {(DQ <none>)} { (DQ < ' 900 MHz ARM | 250 MHz core | 450 MHz SDRAM | 0 overvolt' > ) } {(DQ <low>)} { (DQ < '1000 MHz ARM | 250 MHz core | 450 MHz SDRAM | 3 overvolt' > ) } {(DQ <med>)} { (DQ < '1000 MHz ARM | 500 MHz core | 450 MHz SDRAM | 5 overvolt' > ) } {(DQ <extreme>)} { (DQ < '1050 MHz ARM | 500 MHz core | 450 MHz SDRAM | 6 overvolt' > ) } ] 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>} ) ] do_fork: T ) ) } spids: [29784] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29903] ) ] ) ] spids: [29891 29892 29908 -1] ) (case_arm pat_list: [{<low>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [29918] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=3'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1000'>)} {<'/DietPi/config.txt'>} ) ] spids: [29922 29936] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [29972] ) ] ) ] spids: [29911 29912 29977 -1] ) (case_arm pat_list: [{<med>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [29987] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=5'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1000'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [29991 30005] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [30052] ) ] ) ] spids: [29980 29981 30057 -1] ) (case_arm pat_list: [{<extreme>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [30067] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=6'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1050'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=500'>)} {<'/DietPi/config.txt'>} ) ] spids: [30071 30085] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [30132] ) ] ) ] spids: [30060 30061 30137 -1] ) ] ) ] spids: [29766 29780] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <' Hardware : '> ($ Id.VSub_DollarName '$G_HW_MODEL_DESCRIPTION') <' '> <Id.Lit_BadBackslash '\\'> <'n Current: '> ($ Id.VSub_DollarName '$arm_freq_value') <' MHz ARM | '> ($ Id.VSub_DollarName '$core_freq_value') <' MHz core | '> ($ Id.VSub_DollarName '$sdram_freq_value') <' MHz SDRAM | '> ($ Id.VSub_DollarName '$over_voltage_value') <' overvolt'> ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<75>} {<4>} {(DQ <none>)} { (DQ < '1200 MHz ARM | 400 MHz core | 450 MHz SDRAM | 0 overvolt' > ) } {(DQ <low>)} { (DQ < '1300 MHz ARM | 400 MHz core | 450 MHz SDRAM | 3 overvolt' > ) } {(DQ <med>)} { (DQ < '1325 MHz ARM | 400 MHz core | 450 MHz SDRAM | 4 overvolt' > ) } {(DQ <high>)} { (DQ < '1350 MHz ARM | 400 MHz core | 450 MHz SDRAM | 5 overvolt' > ) } ] 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>} ) ] do_fork: T ) ) } spids: [30166] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<none>}] action: [ (C {<Reset_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [30287] ) ] ) ] spids: [30274 30275 30292 -1] ) (case_arm pat_list: [{<low>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [30304] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1300'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=3'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=400'>)} {<'/DietPi/config.txt'>} ) ] spids: [30308 30322] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [30369] ) ] ) ] spids: [30296 30297 30374 -1] ) (case_arm pat_list: [{<med>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [30386] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1325'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=4'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=400'>)} {<'/DietPi/config.txt'>} ) ] spids: [30390 30404] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [30451] ) ] ) ] spids: [30378 30379 30456 -1] ) (case_arm pat_list: [{<high>}] action: [ (C {<Warning_Overclocking>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [30468] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Reset_Overclocking>}) (C {<sed>} {<-i>} {(SQ <'/over_voltage=/c\\over_voltage=5'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/arm_freq=/c\\arm_freq=1350'>)} {<'/DietPi/config.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=400'>)} {<'/DietPi/config.txt'>} ) ] spids: [30472 30486] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<13>} spids: [30533] ) ] ) ] spids: [30460 30461 30538 -1] ) ] ) ] spids: [30148 30162] ) ] ) ] ) ) (command.ShFunction name: Menu_AudioOptions body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [30564] ) ] ) (C {<local>} {<Id.Lit_VarLike 'soundcard_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SOUNDCARD='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left:<Id.Op_LParen _>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Soundcard>)} {(DQ <': '> ($ Id.VSub_DollarName '$soundcard_current'))} ] ) } spids: [30602] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)}) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-JustBoom>)} {(DQ <': Launches EQ and MPD audio options menu'>)} ] ) } spids: [30646] ) ] ) ] spids: [30616 30642] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'current_cpu_governor='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_GOVERNOR='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'hdmi_output='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'CONFIG_HDMI_OUTPUT='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'psu_noise_reduction_enabled='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$current_cpu_governor'))} {<Id.Lit_Equals '='>} {(DQ <powersave>)} {<Id.Lit_RBracket ']'>} ) (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$hdmi_output')} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'PSU noise reduction'>)} {(DQ <': Enabled | Select now to disable'>)} ] ) } spids: [30779] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:psu_noise_reduction_enabled) op: assign_op.Equal rhs: {<1>} spids: [30791] ) ] ) ] spids: [30747 30775] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'PSU noise reduction'>)} {(DQ <': Disabled | Select now to enable'>)} ] ) } spids: [30800] ) ] ) ] ) ] spids: [30667 30681] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Audio Options'>)} spids: [30821] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<12>} {<75>} {<4>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [30827] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [30876] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'PSU noise reduction'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { ($ Id.VSub_DollarName '$psu_noise_reduction_enabled' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'PSU noise reduction'>)} {<--msgbox>} { (DQ < 'This mode attempts to reduce power consumption on your SBC. In turn, this may reduce PSU inflicted noise, that may degrade audio output quality.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nThe following has now been set:'> <Id.Lit_BadBackslash '\\'> <'n - CPU gov = Powersave'> <Id.Lit_BadBackslash '\\'> <'n - HDMI output = Disabled'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<70>} ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR=powersave'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=0'> ) } {<'/DietPi/dietpi.txt'>} ) ] spids: [30926 30938] ) ] else_action: [ (C {<sed>} {<-i>} { (DQ <'/CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR=ondemand'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) (C {<sed>} {<-i>} { (DQ <'/CONFIG_HDMI_OUTPUT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_HDMI_OUTPUT=1'> ) } {<'/DietPi/dietpi.txt'>} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<14>} spids: [31050] ) ] ) ] spids: [30905 30922] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Soundcard>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Soundcards'>)} spids: [31076] ) ] ) (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <none>)} {(DQ <'Disables HDMI + 3.5mm Analogue'>)} ] ) } spids: [31117] ) ] ) ] spids: [31099 31113] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: { ($ Id.VSub_DollarName '$G_HW_MODEL') } right: {<Id.Lit_Digits 32>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: { ($ Id.VSub_DollarName '$G_HW_MODEL') } right: {<Id.Lit_Digits 51>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 61>} ) ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 62>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <default>)} {(DQ <'3.5mm Analogue'>)}] ) } spids: [31176] ) ] ) ] spids: [31134 31172] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 21>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <default>)} {(DQ <'HW:0,0'>)}] ) } spids: [31211] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)} ) ] negated: F ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<soundcard>} {<default>} ) ] spids: [31228 31256] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 10>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike i> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/proc/asound/card'> ($ Id.VSub_DollarName '$i') <'/id'> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike j> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike j> right: {<Id.Lit_Digits 10>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike j> ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/proc/asound/card'> ($ Id.VSub_DollarName '$i') <'/pcm'> (${ Id.VSub_Name j) <'p/info'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} { <Id.Lit_VarLike 'card_index=' > (command_sub left_token: <Id.Left_DollarParen '$(' > child: (command.Pipeline children: [ (C {<cat>} { < '/proc/asound/card' > ($ Id.VSub_DollarName '$i') <'/pcm'> (${ Id.VSub_Name j) <'p/info'> } ) (C {<grep>} {<-m1>} {(SQ <'^card:'>)} ) (C {<awk>} { (SQ <'{print $2}'> ) } ) ] negated: F ) ) } ) (C {<local>} { <Id.Lit_VarLike 'device_index=' > (command_sub left_token: <Id.Left_DollarParen '$(' > child: (command.Pipeline children: [ (C {<cat>} { < '/proc/asound/card' > ($ Id.VSub_DollarName '$i') <'/pcm'> (${ Id.VSub_Name j) <'p/info'> } ) (C {<grep>} {<-m1>} {(SQ <'^device:'>)} ) (C {<awk>} { (SQ <'{print $2}'> ) } ) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'card_name='> (command_sub left_token: <Id.Left_DollarParen '$(' > child: (C {<cat>} {<'/proc/asound/card'> ($ Id.VSub_DollarName '$i' ) <'/id'> } ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: card_name ) op: assign_op.PlusEqual rhs: { (command_sub left_token: < Id.Left_DollarParen '$(' > child: (command.Pipeline children: [ (C {<cat>} { < '/proc/asound/card' > ($ Id.VSub_DollarName '$i') <'/pcm'> (${ Id.VSub_Name j) <'p/info'> } ) (C {<grep>} {<-m1>} {(SQ <'^name:'>)} ) (C {<sed>} { (SQ < 's/name://g' > ) } ) ] negated: F ) ) } spids: [31436] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: whiptail_menu_array ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ <'hw:'> ($ Id.VSub_DollarName '$card_index' ) <','> ($ Id.VSub_DollarName '$device_index') ) } { (DQ ($ Id.VSub_DollarName '$card_name' ) ) } ] ) } spids: [31469] ) ] ) ] spids: [31335 31352] ) ] ) ] ) ) ] spids: [31295 31308] ) ] ) ] ) ) ] spids: [31193 31207] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <default>)} {(DQ <HDMI>)}] ) } spids: [31507] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835>)} {(DQ <'Onboard: HDMI (if plugged in, else 3.5mm)'>)} ] ) } spids: [31546] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835-3.5mm>)} {(DQ <'Onboard: 3.5mm forced output'>)} ] ) } spids: [31558] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835-ultrahq>)} { (DQ < 'Onboard HQ: HDMI (if plugged in, else 3.5mm)' > ) } ] ) } spids: [31570] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-bcm2835-ultrahq-3.5mm>)} {(DQ <'Onboard HQ: 3.5mm forced output'>)} ] ) } spids: [31582] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-boss-dac-pcm512x-audio>)} {(DQ <'Allo Boss DAC'>)} ] ) } spids: [31594] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-boss-dac-pcm512x-audio>)} {(DQ <'Allo Mini Boss DAC'>)} ] ) } spids: [31606] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <allo-digione>)} {(DQ <'Allo DigiOne'>)}] ) } spids: [31618] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-piano-dac-pcm512x-audio>)} {(DQ <'Allo Piano DAC'>)} ] ) } spids: [31630] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-piano-dac-pcm512x-audio>)} {(DQ <'Allo Piano DAC'>)} ] ) } spids: [31642] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <dionaudio-loco>)} {(DQ <'Dion Audio LOCO'>)} ] ) } spids: [31654] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <dionaudio-loco-v2>)} {(DQ <'Dion Audio LOCO V2'>)} ] ) } spids: [31666] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <googlevoicehat-soundcard>)} {(DQ <'Google AIY voice kit'>)} ] ) } spids: [31678] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-amp>)} {(DQ <'HifiBerry AMP / AMP+'>)} ] ) } spids: [31690] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-dac>)} {(DQ <'HifiBerry DAC / MiniAMP'>)} ] ) } spids: [31702] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-dacplus>)} {(DQ <'HifiBerry DAC+ / DAC+ Pro'>)} ] ) } spids: [31714] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-digi>)} {(DQ <'HifiBerry DIGI / DIGI+'>)} ] ) } spids: [31726] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <hifiberry-digi-pro>)} {(DQ <'HifiBerry DIGI Pro'>)} ] ) } spids: [31738] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <i-sabre-k2m>)} {(DQ <'AudioPhonics I-Sabre ES9028 Q2M'>)} ] ) } spids: [31750] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <iqaudio-dacplus>)} { (DQ < 'Pi-DAC+, Pi-DACZero, Pi-DAC Pro, Pi-DigiAMP+' > ) } ] ) } spids: [31762] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <iqaudio-digi-wm8804-audio>)} {(DQ <'Pi-DIGI+'>)} ] ) } spids: [31774] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'iqaudio-dacplus,auto_mute_amp'>)} {(DQ <'Pi-DigiAMP+'>)} ] ) } spids: [31786] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'iqaudio-dacplus,unmute_amp'>)} {(DQ <'Pi-DigiAMP+'>)} ] ) } spids: [31798] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <justboom-dac>)} { (DQ < 'JustBoom: DAC HAT, Amp HAT, DAC Zero and Amp Zero' > ) } ] ) } spids: [31810] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <justboom-digi>)} {(DQ <'JustBoom: Digi HAT and Digi Zero'>)} ] ) } spids: [31822] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <rpi-dac>)} {(DQ <'Soekris DAM1021 (pcm1794a)'>)} ] ) } spids: [31834] ) ] ) ] spids: [31528 31542] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 12>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-hifishield-plus>)} {(DQ <'Odroid HiFi Shield 1/Plus'>)} ] ) } spids: [31877] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <odroid-hifishield-2>)} {(DQ <'Odroid HiFi Shield 2'>)} ] ) } spids: [31889] ) ] ) ] spids: [31851 31873] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 32>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <h2-hdmi>)} {(DQ <HDMI>)}] ) } spids: [31924] ) ] ) ] spids: [31906 31920] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 43>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <rock64-analogue>)} {(DQ <3.5MM>)}] ) } spids: [31959] ) ] ) ] spids: [31941 31955] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DPipe left: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 61>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 62>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <s5pxx18-hdmi>)} {(DQ <HDMI>)}] ) } spids: [32002] ) ] ) ] spids: [31976 31998] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_CPUID')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <H3-analogue>)} {(DQ <'3.5mm analogue'>)}] ) } spids: [32037] ) ] ) ] spids: [32019 32033] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 70>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <snd-soc-allo-piano-dac>)} {(DQ <'Allo Piano DAC'>)} ] ) } spids: [32086] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <snd-soc-allo-piano-dac-plus>)} {(DQ <'Allo Piano DAC 2.1'>)} ] ) } spids: [32098] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-cheapo-analogue>)} {(DQ <'Allo Cheapo (3.5mm / RCA output)'>)} ] ) } spids: [32110] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <allo-cheapo-optical>)} {(DQ <'Allo Cheapo (Optical output)'>)} ] ) } spids: [32122] ) ] ) ] spids: [32068 32082] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 52>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <asus-tb-analogue>)} {(DQ <'3.5mm analogue'>)} ] ) } spids: [32157] ) ] ) ] spids: [32139 32153] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <usb-dac>)} {(DQ <'USB Audio DAC (any)'>)}] ) } spids: [32178] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 <'Current : '> ($ Id.VSub_DollarName '$soundcard_current') ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$soundcard_current'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<18>} {<90>} {<10>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [32191] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [32246] ) ] ) (C {<unset>} {<whiptail_menu_array>}) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<soundcard>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [32283] ) ] ) ] spids: [32256 32270] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<14>} spids: [32296] ) ] ) ] spids: [31055 31072] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <DietPi-JustBoom>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/misc/dietpi-justboom'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<14>} spids: [32330] ) ] ) ] spids: [32301 32318] ) ] ) ] spids: [30887 30901] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_MODE) op: assign_op.Equal rhs: {<0>} spids: [32351] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_DURATION) op: assign_op.Equal rhs: {<60>} spids: [32358] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MIN) op: assign_op.Equal rhs: {<0>} spids: [32362] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MAX) op: assign_op.Equal rhs: {<0>} spids: [32366] ) ] ) (command.ShFunction name: Menu_StressTest body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<11>} spids: [32378] ) ] ) (C {<local>} {<Id.Lit_VarLike 'stress_test_mode_text='> (SQ <'CPU Burn: (CPU only)'>)}) (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 '$STRESS_TEST_MODE')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stress_test_mode_text) op: assign_op.Equal rhs: {(SQ <'CPU & RAM: (CPU, RAM)'>)} spids: [32409] ) ] ) ] spids: [32391 32405] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$STRESS_TEST_MODE')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:stress_test_mode_text) op: assign_op.Equal rhs: {(SQ <'Full: (CPU, DISK, RAM)'>)} spids: [32434] ) ] ) ] spids: [32416 32430] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Stress Test'>)} spids: [32445] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 an option:'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<11>} {<60>} {<3>} {(DQ <Mode>)} {(DQ ($ Id.VSub_DollarName '$stress_test_mode_text'))} {(DQ <Duration>)} { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName '$STRESS_TEST_DURATION')} right: {<Id.Lit_Digits 60>} ) ) <' Minutes'> ) } {(DQ <Start>)} {(DQ <'Launch the stress test'>)} ] 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>} ) ] do_fork: T ) ) } spids: [32451] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [32536] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Duration>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 a duration for the test'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$STRESS_TEST_DURATION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<60>} {<5>} {(DQ <60>)} {(DQ <'1 Minute'>)} {(DQ <300>)} {(DQ <'5 Minutes'>)} {(DQ <1800>)} {(DQ <'30 Minutes'>)} {(DQ <3600>)} {(DQ <'1 Hour'>)} {(DQ <21600>)} {(DQ <'6 Hours'>)} ] 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>} ) ] do_fork: T ) ) } spids: [32579] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [32680] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_DURATION) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [32702] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<15>} spids: [32706] ) ] ) ] spids: [32684 32698] ) ] ) ] spids: [32558 32575] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Mode>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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 a stress test type'>)} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$STRESS_TEST_MODE'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<60>} {<3>} {(DQ <0>)} {(DQ <'CPU Burn: (CPU only)'>)} {(DQ <1>)} {(DQ <'CPU & RAM: (CPU, RAM)'>)} {(DQ <2>)} {(DQ <'Full: (CPU, DISK, RAM)'>)} ] 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>} ) ] do_fork: T ) ) } spids: [32736] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [32817] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_MODE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [32839] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<15>} spids: [32843] ) ] ) ] spids: [32821 32835] ) ] ) ] spids: [32715 32732] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <Start>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AG_CHECK_INSTALL_PREREQ>} {<stress>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '$?')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [32878 32892] ) ] ) (C {<G_DIETPI-NOTIFY>} {<3>} {<Stress_Test>} { (DQ <'Running stress test for '> ($ Id.VSub_DollarName '$STRESS_TEST_DURATION') <' seconds'> ) } ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'To terminate, type: killall -w stress'>)}) (C {<local>} {<Id.Lit_VarLike 'start_time='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'start_time_epoch='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'cores='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<nproc>} {<--all>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'memory_per_thread='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<free>} {<-m>}) (C {<awk>} {(SQ <'/^Mem:/{print $2}'>)}) ] negated: F ) ) } right: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$cores')} right: {<Id.Lit_Digits 2>} ) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'fp_log='> (DQ ($ Id.VSub_DollarName '$HOME') <'/dietpi-config_stress.log'>) } ) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName '$fp_log'))}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (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 '$STRESS_TEST_MODE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stress>} {<-c>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$cores')} right: {<Id.Lit_Digits 2>} ) ) } {<-t>} {(DQ ($ Id.VSub_DollarName '$STRESS_TEST_DURATION')) <s>} ) terminator: <Id.Op_Amp _> ) ] spids: [33018 33032] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$STRESS_TEST_MODE')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stress>} {<-c>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$cores')} right: {<Id.Lit_Digits 2>} ) ) } {<-i>} {($ Id.VSub_DollarName '$cores')} {<-m>} {($ Id.VSub_DollarName '$cores')} {<--vm-bytes>} {(DQ ($ Id.VSub_DollarName '$memory_per_thread')) <M>} {<-t>} {(DQ ($ Id.VSub_DollarName '$STRESS_TEST_DURATION')) <s>} ) terminator: <Id.Op_Amp _> ) ] spids: [33062 33076] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$STRESS_TEST_MODE')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<stress>} {<-c>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$cores')} right: {<Id.Lit_Digits 2>} ) ) } {<-i>} {($ Id.VSub_DollarName '$cores')} {<-m>} {($ Id.VSub_DollarName '$cores')} {<--vm-bytes>} {(DQ ($ Id.VSub_DollarName '$memory_per_thread')) <M>} {<-d>} {<2>} {<-t>} {(DQ ($ Id.VSub_DollarName '$STRESS_TEST_DURATION')) <s>} ) terminator: <Id.Op_Amp _> ) ] spids: [33121 33135] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MIN) op: assign_op.Equal rhs: {<1000>} spids: [33192] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRESS_TEST_RESULTS_TEMP_MAX) op: assign_op.Equal rhs: {<0>} spids: [33196] ) ] ) (C {<local>} {<Id.Lit_VarLike 'cpu_supports_temp='> <0>}) (C {<local>} {<Id.Lit_VarLike 'cpu_temp='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) ) } ) (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_DollarName '$cpu_temp')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpu_supports_temp) op: assign_op.Equal rhs: {<1>} spids: [33243] ) ] ) ] spids: [33219 33239] ) ] ) (C {<local>} {<Id.Lit_VarLike 'remaning_time='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (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>} {(SQ <'[s]tress'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpu_temp) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<G_OBTAIN_CPU_TEMP>}) ) } spids: [33296] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:remaning_time) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: { ($ Id.VSub_DollarName '$STRESS_TEST_DURATION') } right: (arith_expr.Binary op_id: Id.Arith_Minus left: { ($ Id.VSub_DollarName '$start_time_epoch') } right: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s> } ) ) } ) ) ) } spids: [33302] ) ] ) (C {<echo>} {<-e>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) <' | '> ($ Id.VSub_DollarName '$cpu_temp') <'\'c | '> ($ Id.VSub_DollarName '$remaning_time') <' seconds remaining'> ) } ) (command.Simple words: [ {<echo>} {<-e>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) <' | '> ($ Id.VSub_DollarName '$cpu_temp') <'\'c'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$fp_log'))} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$cpu_supports_temp')} ) 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_Great left: { ($ Id.VSub_DollarName '$cpu_temp' ) } right: { ($ Id.VSub_DollarName '$STRESS_TEST_RESULTS_TEMP_MAX' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: STRESS_TEST_RESULTS_TEMP_MAX ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$cpu_temp')} spids: [33399] ) ] ) ] spids: [33381 33395] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: { ($ Id.VSub_DollarName '$cpu_temp' ) } right: { ($ Id.VSub_DollarName '$STRESS_TEST_RESULTS_TEMP_MIN' ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: STRESS_TEST_RESULTS_TEMP_MIN ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$cpu_temp')} spids: [33426] ) ] ) ] spids: [33408 33422] ) ] ) ] spids: [33367 33377] ) ] ) (C {<sleep>} {<1>}) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike time_since_start> ) ) ] ) ) (C {<local>} {<Id.Lit_VarLike 'end_time='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'end_time_epoch='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'duration_seconds='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$end_time_epoch')} right: {($ Id.VSub_DollarName '$start_time_epoch')} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'output_string='> (DQ <' - Start Time: '> ($ Id.VSub_DollarName '$start_time') <'\n'> <' - End Time : '> ($ Id.VSub_DollarName '$end_time') <'\n'> <' - Duration : '> ($ Id.VSub_DollarName '$duration_seconds') <' seconds\n'> <' - Min Temp : '> ($ Id.VSub_DollarName '$STRESS_TEST_RESULTS_TEMP_MIN') <' \'c\n'> <' - Max Temp : '> ($ Id.VSub_DollarName '$STRESS_TEST_RESULTS_TEMP_MAX') <' \'c\n'> <' - log : '> ($ Id.VSub_DollarName '$fp_log') ) } ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Stress Test Completed'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ ($ Id.VSub_DollarName '$output_string'))}) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--msgbox>} {(DQ <'Stress test results:'> <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName '$output_string'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<14>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<15>} spids: [33565] ) ] ) ] spids: [32852 32869] ) ] ) ] spids: [32540 32554] ) ] ) ] ) ) (command.ShFunction name: Menu_Network_Nas_Misc body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [33593] ) ] ) (C {<Load_Installed_Software>}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_menutext='> (DQ <'Install now to access Windows shares and NAS devices'>) } ) (C {<local>} {<Id.Lit_VarLike 'sambaclient_mounted_size='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_mounted_used='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'sambaclient_mounted_free='> (DQ <unknown>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonEquals ':='> arg_word: {<0>} ) ) } right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_installed) op: assign_op.Equal rhs: {<1>} spids: [33681] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_status) op: assign_op.Equal rhs: {(DQ <'Unable to connect and/or incorrect details'>)} spids: [33685] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_menutext) op: assign_op.Equal rhs: {(DQ <'Input/Modify Details'>)} spids: [33691] ) ] ) (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 {<df>} {<-h>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/mnt/samba'>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_mounted_size) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/samba'>)}) (C {<awk>} {(SQ <'{print $(NF-4)}'>)}) ] negated: F ) ) } spids: [33740] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_mounted_used) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/samba'>)}) (C {<awk>} {(SQ <'{print $(NF-3)}'>)}) ] negated: F ) ) } spids: [33766] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_mounted_free) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/samba'>)}) (C {<awk>} {(SQ <'{print $(NF-2)}'>)}) ] negated: F ) ) } spids: [33792] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sambaclient_status) op: assign_op.Equal rhs: { (DQ <'/mnt/samba | Size '> ($ Id.VSub_DollarName '$sambaclient_mounted_size') <' | Used '> ($ Id.VSub_DollarName '$sambaclient_mounted_used') <' | Free '> ($ Id.VSub_DollarName '$sambaclient_mounted_free') ) } spids: [33818] ) ] ) ] spids: [33702 33732] ) ] ) ] spids: [33656 33677] ) ] ) (C {<local>} {<Id.Lit_VarLike 'curlftpfs_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'curlftpfs_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'curlftpfs_menutext='> (DQ <'Install now to access FTP as filesystem 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: { (braced_var_sub token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonEquals ':='> arg_word: {<0>} ) ) } right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:curlftpfs_installed) op: assign_op.Equal rhs: {<1>} spids: [33889] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:curlftpfs_status) op: assign_op.Equal rhs: {(DQ <'Unable to connect and/or incorrect details'>)} spids: [33893] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:curlftpfs_menutext) op: assign_op.Equal rhs: {(DQ <'Input/Modify Details'>)} spids: [33899] ) ] ) (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 {<df>} {<-h>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/mnt/ftp_client'>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:curlftpfs_status) op: assign_op.Equal rhs: {(DQ <'/mnt/ftp_client | Connected'>)} spids: [33948] ) ] ) ] spids: [33910 33940] ) ] ) ] spids: [33864 33885] ) ] ) (C {<local>} {<Id.Lit_VarLike 'noip_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'noip_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'noip_menutext='> (DQ <'Install No-Ip now'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 67>}) suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonEquals ':='> arg_word: {<0>} ) ) } right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:noip_installed) op: assign_op.Equal rhs: {<1>} spids: [34014] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:noip_status) op: assign_op.Equal rhs: {(DQ <'Offline - Please Enter No-Ip Details'>)} spids: [34018] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:noip_menutext) op: assign_op.Equal rhs: {(DQ <'Enter/Setup NoIp Details'>)} spids: [34024] ) ] ) (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 {<ps>} {<aux>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/usr/local/bin/[n]oip2'>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:noip_status) op: assign_op.Equal rhs: {(DQ <'Online / Active'>)} spids: [34069] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:noip_menutext) op: assign_op.Equal rhs: {(DQ <'Change NoIp Details'>)} spids: [34075] ) ] ) ] spids: [34035 34065] ) ] ) ] spids: [33989 34010] ) ] ) (C {<local>} {<Id.Lit_VarLike 'nfsclient_installed='> <0>}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_status='> (DQ <'Not Installed'>)}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_menutext='> (DQ <'Install now to access NFS shares'>)} ) (C {<local>} {<Id.Lit_VarLike 'nfsclient_mounted_size='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_mounted_used='> (DQ <unknown>)}) (C {<local>} {<Id.Lit_VarLike 'nfsclient_mounted_free='> (DQ <unknown>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (braced_var_sub token: <Id.VSub_Name aSOFTWARE_INSTALL_STATE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 110>}) suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonEquals ':='> arg_word: {<0>} ) ) } right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_installed) op: assign_op.Equal rhs: {<1>} spids: [34165] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_status) op: assign_op.Equal rhs: {(DQ <'Unable to connect and/or incorrect details'>)} spids: [34169] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_menutext) op: assign_op.Equal rhs: {(DQ <'Input/Modify Details'>)} spids: [34175] ) ] ) (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 {<df>} {<-h>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'/mnt/nfs_client'>)} ) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_mounted_size) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/nfs_client'>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) ] negated: F ) ) } spids: [34224] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_mounted_used) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/nfs_client'>)}) (C {<awk>} {(SQ <'{ print $3 }'>)}) ] negated: F ) ) } spids: [34250] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_mounted_free) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<df>} {<-h>}) (C {<grep>} {<-m1>} {(SQ <'/mnt/nfs_client'>)}) (C {<awk>} {(SQ <'{ print $4 }'>)}) ] negated: F ) ) } spids: [34276] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nfsclient_status) op: assign_op.Equal rhs: { (DQ <'/mnt/nfs_client | Size '> ($ Id.VSub_DollarName '$nfsclient_mounted_size') <' | Used '> ($ Id.VSub_DollarName '$nfsclient_mounted_used') <' | Free '> ($ Id.VSub_DollarName '$nfsclient_mounted_free') ) } spids: [34302] ) ] ) ] spids: [34186 34216] ) ] ) ] spids: [34140 34161] ) ] ) (C {<local>} {<Id.Lit_VarLike 'apt_mirror_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<sed>} {<-n>} {<1p>} {<'/etc/apt/sources.list'>}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName '$apt_mirror_current'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:apt_mirror_current) op: assign_op.Equal rhs: {(SQ <'Unknown, no string from scrape'>)} spids: [34367] ) ] ) ] spids: [34348 34363] ) ] ) (C {<local>} {<Id.Lit_VarLike 'ntpd_mirror_current='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NTP_MIRROR='>)} {<'/DietPi/dietpi.txt'>}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName '$ntpd_mirror_current'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ntpd_mirror_current) op: assign_op.Equal rhs: {(SQ <'Unknown, no string from scrape'>)} spids: [34425] ) ] ) ] spids: [34406 34421] ) ] ) (C {<local>} {<Id.Lit_VarLike 'boot_wait_for_network='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_BOOT_WAIT_FOR_NETWORK='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'boot_wait_for_network_text='> (SQ <': '>)}) (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 '$boot_wait_for_network')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:boot_wait_for_network_text) op: assign_op.PlusEqual rhs: {(SQ <Disabled>)} spids: [34494] ) ] ) ] spids: [34476 34490] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$boot_wait_for_network')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:boot_wait_for_network_text) op: assign_op.PlusEqual rhs: {(SQ <'10 Seconds MAX (default)'>)} spids: [34519] ) ] ) ] spids: [34501 34515] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$boot_wait_for_network')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:boot_wait_for_network_text) op: assign_op.PlusEqual rhs: {(SQ <'Infinite wait'>)} spids: [34544] ) ] ) ] spids: [34526 34540] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Network Options: NAS/Misc'>)} spids: [34554] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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.Lit_BadBackslash '\\'> <'n Samba client : '> ($ Id.VSub_DollarName '$sambaclient_status') <Id.Lit_BadBackslash '\\'> <'n FTP client : '> ($ Id.VSub_DollarName '$curlftpfs_status') <Id.Lit_BadBackslash '\\'> <'n NFS client : '> ($ Id.VSub_DollarName '$nfsclient_status') <Id.Lit_BadBackslash '\\'> <'n NoIp status : '> ($ Id.VSub_DollarName '$noip_status') <Id.Lit_BadBackslash '\\'> <'n Apt mirror : '> ($ Id.VSub_DollarName '$apt_mirror_current') <Id.Lit_BadBackslash '\\'> <'n NTPD mirror : '> ($ Id.VSub_DollarName '$ntpd_mirror_current') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<21>} {<100>} {<7>} {(DQ <'Samba Client'>)} {(DQ ($ Id.VSub_DollarName '$sambaclient_menutext'))} {(DQ <'FTP Client'>)} {(DQ ($ Id.VSub_DollarName '$curlftpfs_menutext'))} {(DQ <'NFS Client'>)} {(DQ ($ Id.VSub_DollarName '$nfsclient_menutext'))} {(DQ <NoIp>)} {(DQ ($ Id.VSub_DollarName '$noip_menutext'))} {(DQ <'Apt Mirror'>)} {(DQ <'Select a different Apt mirror for sources.list'>)} {(DQ <'NTPD Mirror'>)} {(DQ <'Select a different NTPD mirror'>)} {(DQ <'Boot Net Wait'>)} {(DQ ($ Id.VSub_DollarName '$boot_wait_for_network_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>} ) ] do_fork: T ) ) } spids: [34560] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [34693] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <'Boot Net Wait'>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <0>)} {(SQ <': Disabled'>)}] ) } spids: [34743] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <1>)} { (SQ < ': Wait 10 Seconds MAX for network, before continuing boot (default)' > ) } ] ) } spids: [34755] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <2>)} { (SQ < ': Infinite wait for network, before continuing boot' > ) } ] ) } spids: [34767] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Wait for network during boot'>)} {<--menu>} { (DQ < 'The following options will allow you to delay boot, until a valid network connection is available:' > ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$boot_wait_for_network'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<80>} {<3>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [34780] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [34840] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (DQ < '/^CONFIG_BOOT_WAIT_FOR_NETWORK=/c CONFIG_BOOT_WAIT_FOR_NETWORK=' > ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [34879] ) ] ) ] spids: [34844 34858] ) ] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [34724 34727 34898 -1] ) (case_arm pat_list: [{(DQ <'Apt Mirror'>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Custom>)} {(DQ <'Manually enter Apt mirror'>)}] ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://mirrordirector.raspbian.org/raspbian' > ) } {(DQ <Global>)} ] ) } spids: [34954] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'https://www.mirrorservice.org/sites/archive.raspbian.org/raspbian' > ) } {(DQ <'Global (https)'>)} ] ) } spids: [34966] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian' > ) } {(DQ <UK>)} ] ) } spids: [34978] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'ftp://ftp.fu-berlin.de/linux/raspbian/raspbian' > ) } {(DQ <Germany>)} ] ) } spids: [34990] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://mirror.umd.edu/raspbian/raspbian'>)} {(DQ <US>)} ] ) } spids: [35002] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://mirrors.ustc.edu.cn/raspbian/raspbian' > ) } {(DQ <China>)} ] ) } spids: [35014] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ < 'http://raspbian.mirror.digitalpacific.com.au/raspbian' > ) } {(DQ <Australia>)} ] ) } spids: [35026] ) ] ) ] spids: [34936 34950] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.debian.org/debian/'>)} {(DQ <Global>)} ] ) } spids: [35047] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.uk.debian.org/debian/'>)} {(DQ <UK>)} ] ) } spids: [35059] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.us.debian.org/debian/'>)} {(DQ <US>)} ] ) } spids: [35071] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.cn.debian.org/debian/'>)} {(DQ <China>)} ] ) } spids: [35083] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <'http://ftp.au.debian.org/debian/'>)} {(DQ <Australia>)} ] ) } spids: [35095] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Choose Apt Mirror'>)} {<--menu>} { (DQ < 'Please select a Apt mirror, or choose custom for manual entry.' > ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$apt_mirror_current'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<15>} {<100>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [35112] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [35172] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_DollarName '$OPTION')} arms: [ (case_arm pat_list: [{<Custom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Enter Your Apt Mirror'> <Id.Lit_BadBackslash '\\'> <'n - eg: http://ftp.debian.org/debian'> ) } {<9>} {<100>} { (DQ ($ Id.VSub_DollarName '$apt_mirror_current' ) ) } {<--title>} {(DQ <'Set Apt Mirror'>)} ] 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>} ) ] do_fork: T ) ) } spids: [35204] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [35241] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [35262] ) ] ) ] spids: [35245 35259] ) ] ) ] spids: [35200 35201 35269 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [35276] ) ] ) ] spids: [35272 35273 35280 -1] ) ] ) (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<apt-mirror>} {($ Id.VSub_DollarName '$OPTION')} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Updating Apt, please wait...'>)}) (C {<G_AGUP>}) (C {<local>} {<Id.Lit_VarLike 'exit_code='> ($ Id.VSub_QMark '$?')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName '$exit_code')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Apt Error:'>)} {<--msgbox>} { (DQ <'Failed to update apt, exit code: '> ($ Id.VSub_DollarName '$exit_code') <Id.Lit_BadBackslash '\\'> <'nPlease try another Apt mirror.'> ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<8>} {<65>} ) ] spids: [35318 35332] ) ] ) ] spids: [35176 35190] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [35377] ) ] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [34902 34905 35392 -1] ) (case_arm pat_list: [{(DQ <'NTPD Mirror'>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'whiptail_menu_array='> (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <Custom>)} {(DQ <'Manually enter NTPD mirror'>)}] ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <debian.pool.ntp.org>)} {(SQ <'Debian Global'>)}] ) } spids: [35428] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <pool.ntp.org>)} {(SQ <Global>)}] ) } spids: [35440] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <europe.pool.ntp.org>)} {(SQ <Europe>)}] ) } spids: [35452] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <north-america.pool.ntp.org>)} {(SQ <'North America'>)} ] ) } spids: [35464] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <south-america.pool.ntp.org>)} {(SQ <'South America'>)} ] ) } spids: [35476] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <africa.pool.ntp.org>)} {(SQ <Africa>)}] ) } spids: [35488] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <asia.pool.ntp.org>)} {(SQ <Asia>)}] ) } spids: [35500] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whiptail_menu_array) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <oceania.pool.ntp.org>)} {(SQ <Oceania>)}] ) } spids: [35512] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ <'Choose NTPD Mirror'>)} {<--menu>} { (DQ < 'Please select a NTPD mirror, or choose custom for manual entry.' > <Id.Lit_BadBackslash '\\'> <'n - Further information: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'http://www.pool.ntp.org/zone/@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } {<--default-item>} {(DQ ($ Id.VSub_DollarName '$ntpd_mirror_current'))} {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<100>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name whiptail_menu_array> bracket_op: (bracket_op.WholeArray op_id: Id.Lit_At ) ) ) } ] 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>} ) ] do_fork: T ) ) } spids: [35525] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [35590] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [35612] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$OPTION')} arms: [ (case_arm pat_list: [{<Custom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Enter Your NTPD Mirror'> <Id.Lit_BadBackslash '\\'> <'n - eg: debian.pool.ntp.org'> ) } {<9>} {<100>} { (DQ ($ Id.VSub_DollarName '$ntpd_mirror_current' ) ) } {<--title>} {(DQ <'Set NTPD Mirror'>)} ] 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>} ) ] do_fork: T ) ) } spids: [35630] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [35667] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [35689] ) ] ) ] spids: [35671 35685] ) ] ) ] spids: [35625 35626 35698 -1] ) ] ) (C {<sed>} {<-i>} { (DQ <'/CONFIG_NTP_MIRROR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_NTP_MIRROR='> ($ Id.VSub_DollarName '$OPTION') ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/func/dietpi-set_software'>} {<ntpd-mode>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {<-m1>} {(SQ <'^CONFIG_NTP_MODE='>)} {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [35750] ) ] ) ] spids: [35594 35608] ) ] ) (C {<unset>} {<whiptail_menu_array>}) ] spids: [35396 35399 35769 -1] ) (case_arm pat_list: [{(DQ <'NFS Client'>)}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$nfsclient_installed')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Install NFS Client?'>)} {<--yesno>} { (DQ < 'NFS Client is not installed, would you like to install it now?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nThis will allow you access NFS shares.'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [35843] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<110>}) ] spids: [35847 35861] ) ] ) ] spids: [35784 35796] ) ] else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_nfsclient'>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [35897] ) ] ) ] spids: [35773 35776 35902 -1] ) (case_arm pat_list: [{<Samba> <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$sambaclient_installed')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Install Samba Client?'>)} {<--yesno>} { (DQ < 'Samba Client is not installed, would you like to install it now?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'nThis will allow you access Windows shared folders, NAS and CIFS capable devices.' > ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [35974] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<1>}) ] spids: [35978 35992] ) ] ) ] spids: [35915 35927] ) ] else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_smbclient'>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [36028] ) ] ) ] spids: [35906 35908 36032 -1] ) (case_arm pat_list: [{<FTP> <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$curlftpfs_installed')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<whiptail>} {<--title>} {(DQ <'Install FTP Client?'>)} {<--yesno>} { (DQ < 'FTP Client (curlftpfs) is not installed, would you like to install it now? ' > <Id.Lit_BadBackslash '\\'> <'n '> <Id.Lit_BadBackslash '\\'> < 'n - This is required to mount an FTP connection to filesystem' > ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<12>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [36103] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<2>}) ] spids: [36107 36121] ) ] ) ] spids: [36044 36056] ) ] else_action: [(C {<'/DietPi/dietpi/func/dietpi-set_curlftpfs'>})] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [36157] ) ] ) ] spids: [36035 36037 36161 -1] ) (case_arm pat_list: [{<NoIp>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: {($ Id.VSub_DollarName '$noip_installed')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'noip_url_address='> (SQ )}) (C {<whiptail>} {<--title>} {(DQ <'Install NoIp Client?'>)} {<--yesno>} { (DQ < 'NoIp Client is not installed, would you like to install it now?' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> < 'n- NoIp will allow you to use a fixed web address, regardless of your internet IP' > <Id.Lit_BadBackslash '\\'> <'neg: MySuperDooperWebsite.noip2.biz would point to this device!'> ) } {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<70>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [36240] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<67>}) ] spids: [36244 36258] ) ] ) ] spids: [36172 36184] ) ] else_action: [ (C {<clear>}) (C {<service>} {<noip2>} {<stop>}) (C {<noip2>} {<-C>}) (C {<read>} {<-p>} {(DQ <'Press any key to continue.....'>)}) (C {<service>} {<noip2>} {<start>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [36322] ) ] ) ] spids: [36164 36165 36326 -1] ) ] ) ] spids: [34697 34711] ) ] else_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 '$EXITONBACK')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<16>} spids: [36366] ) ] ) (C {<Menu_Exit>}) ] spids: [36345 36359] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ENABLED) op: assign_op.Equal rhs: {<-1>} spids: [36384] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ADDRESS) op: assign_op.Equal rhs: {(SQ )} spids: [36388] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_PORT) op: assign_op.Equal rhs: {(SQ )} spids: [36393] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_USERNAME) op: assign_op.Equal rhs: {(SQ )} spids: [36398] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_PASSWORD) op: assign_op.Equal rhs: {(SQ )} spids: [36403] ) ] ) (command.ShFunction name: Load_Proxy_Vars body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ENABLED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_ENABLED='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [36420] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ADDRESS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_ADDRESS='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [36446] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_PORT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_PORT='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [36472] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_USERNAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_USERNAME='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [36498] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_PASSWORD) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {<'/DietPi/dietpi.txt'>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_PROXY_PASSWORD='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ) } spids: [36524] ) ] ) ] ) ) (command.ShFunction name: Menu_NetworkAdapters_Proxy body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<8>} spids: [36566] ) ] ) (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 '$PROXY_ENABLED')} right: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: {<Id.Lit_Digits 1>} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Load_Proxy_Vars>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:proxy_state_text) op: assign_op.Equal rhs: {(SQ <Disabled>)} spids: [36598] ) ] ) (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 '$PROXY_ENABLED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:proxy_state_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [36621] ) ] ) ] spids: [36604 36618] ) ] ) ] spids: [36575 36590] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:proxy_state_text_new) op: assign_op.Equal rhs: {(SQ <No>)} spids: [36634] ) ] ) (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 '$PROXY_ENABLED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:proxy_state_text_new) op: assign_op.Equal rhs: {(SQ <Yes>)} spids: [36657] ) ] ) ] spids: [36640 36654] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'DietPi - Proxy Network Options'>)} spids: [36667] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name 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.Lit_BadBackslash '\\'> <'n Current Details:'> <Id.Lit_BadBackslash '\\'> <'n - Status: '> ($ Id.VSub_DollarName '$proxy_state_text') <Id.Lit_BadBackslash '\\'> <'n - Address: '> ($ Id.VSub_DollarName '$PROXY_ADDRESS') <Id.Lit_BadBackslash '\\'> <'n - Port: '> ($ Id.VSub_DollarName '$PROXY_PORT') <Id.Lit_BadBackslash '\\'> <'n - Username: '> ($ Id.VSub_DollarName '$PROXY_USERNAME') <Id.Lit_BadBackslash '\\'> <'n - Password: '> ($ Id.VSub_DollarName '$PROXY_PASSWORD') ) } {<--cancel-button>} {(DQ ($ Id.VSub_DollarName '$TEXT_MENU_BACK'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<21>} {<60>} {<6>} {(DQ <Toggle>)} {(DQ <'Use Proxy?: '> ($ Id.VSub_DollarName '$proxy_state_text_new'))} {(DQ <Address>)} {(DQ <'Enter Proxy server IP/URL'>)} {(DQ <Port>)} {(DQ <'Enter Proxy server port'>)} {(DQ <Username>)} {(DQ <'Enter Proxy server username'>)} {(DQ <Password>)} {(DQ <'Enter Proxy server password'>)} {(DQ <Apply>)} {(DQ <'Save Changes'>)} ] 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>} ) ] do_fork: T ) ) } spids: [36673] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [36796] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{<Toggle>}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike PROXY_ENABLED> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$PROXY_ENABLED')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ENABLED) op: assign_op.Equal rhs: {<0>} spids: [36854] ) ] ) ] spids: [36837 36851] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [36866] ) ] ) ] spids: [36826 36827 36870 -1] ) (case_arm pat_list: [{<Address>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy URL or IP address'> <Id.Lit_BadBackslash '\\'> <'n - eg: MyProxy.com'> ) } {<9>} {<65>} {(DQ ($ Id.VSub_DollarName '$PROXY_ADDRESS'))} {<--title>} {(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>} ) ] do_fork: T ) ) } spids: [36877] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [36914] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ADDRESS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [36935] ) ] ) ] spids: [36918 36932] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [36947] ) ] ) ] spids: [36873 36874 36951 -1] ) (case_arm pat_list: [{<Port>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy port number'> <Id.Lit_BadBackslash '\\'> <'n - eg: 1234'> ) } {<9>} {<65>} {(DQ ($ Id.VSub_DollarName '$PROXY_PORT'))} {<--title>} {(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>} ) ] do_fork: T ) ) } spids: [36958] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [36995] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_PORT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [37016] ) ] ) ] spids: [36999 37013] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [37028] ) ] ) ] spids: [36954 36955 37032 -1] ) (case_arm pat_list: [{<Username>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy username'> <Id.Lit_BadBackslash '\\'> <'n - eg: JoeBloggs'> <Id.Lit_BadBackslash '\\'> <'n - Leave blank if not required'> ) } {<10>} {<65>} {(DQ ($ Id.VSub_DollarName '$PROXY_USERNAME'))} {<--title>} {(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>} ) ] do_fork: T ) ) } spids: [37039] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [37078] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_USERNAME) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [37099] ) ] ) ] spids: [37082 37096] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [37111] ) ] ) ] spids: [37035 37036 37115 -1] ) (case_arm pat_list: [{<Password>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--inputbox>} { (DQ <'Please enter the proxy password'> <Id.Lit_BadBackslash '\\'> <'n - eg: LetMeIn'> <Id.Lit_BadBackslash '\\'> <'n - Leave blank if not required'> ) } {<10>} {<65>} {(DQ ($ Id.VSub_DollarName '$PROXY_PASSWORD'))} {<--title>} {(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>} ) ] do_fork: T ) ) } spids: [37122] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [37161] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_PASSWORD) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [37182] ) ] ) ] spids: [37165 37179] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [37194] ) ] ) ] spids: [37118 37119 37198 -1] ) (case_arm pat_list: [{<Apply>}] action: [ (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_ENABLED=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_ENABLED='> ($ Id.VSub_DollarName '$PROXY_ENABLED') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_ADDRESS=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_ADDRESS='> ($ Id.VSub_DollarName '$PROXY_ADDRESS') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_PORT=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_PORT='> ($ Id.VSub_DollarName '$PROXY_PORT') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_USERNAME=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_USERNAME='> ($ Id.VSub_DollarName '$PROXY_USERNAME') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_PROXY_PASSWORD=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_PROXY_PASSWORD='> ($ Id.VSub_DollarName '$PROXY_PASSWORD') ) } {<'/DietPi/dietpi.txt'>} ) (C {<sed>} {<-i>} {(SQ <'/{http,https,ftp}_proxy=/d'>)} {<'/etc/bash.bashrc'>} ) (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 '$PROXY_ENABLED')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ ($ Id.VSub_DollarName '$PROXY_USERNAME') ) } {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ ($ Id.VSub_DollarName '$PROXY_PASSWORD') ) } {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 37379 stdin_parts: [ <'export {http,https,ftp}_proxy='> <Id.Right_DoubleQuote '"'> <'http://'> ($ Id.VSub_DollarName '$PROXY_USERNAME') <':'> ($ Id.VSub_DollarName '$PROXY_PASSWORD') <'@'> ($ Id.VSub_DollarName '$PROXY_ADDRESS') <':'> ($ Id.VSub_DollarName '$PROXY_PORT') <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/bash.bashrc'>} ) ] do_fork: T ) ] spids: [37328 37353] ) ] else_action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 37403 stdin_parts: [ <'export {http,https,ftp}_proxy='> <Id.Right_DoubleQuote '"'> <'http://'> ($ Id.VSub_DollarName '$PROXY_ADDRESS') <':'> ($ Id.VSub_DollarName '$PROXY_PORT') <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/bash.bashrc'>} ) ] do_fork: T ) ] ) ] spids: [37310 37324] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBOOT_REQUIRED) op: assign_op.Equal rhs: {<1>} spids: [37418] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Proxy: Reboot required'>)} spids: [37423] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'Your proxy settings have been saved.\\n\\nNB: You must reboot your system, before the new proxy settings will take effect.\\n\\nReboot system now?' > ) } spids: [37429] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<13>} {<65>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [37474] ) ] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<reboot>})] spids: [37478 37492] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ENABLED) op: assign_op.Equal rhs: {<-1>} spids: [37506] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<17>} spids: [37515] ) ] ) ] spids: [37201 37202 37519 -1] ) ] ) ] spids: [36800 36814] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROXY_ENABLED) op: assign_op.Equal rhs: {<-1>} spids: [37533] ) ] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')} right: {<Id.Lit_Digits 0>} ) ) 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>} ) ) ) 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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Main>})] spids: [37605 37619] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_DisplayOptions>})] spids: [37625 37639] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_DisplayOptions_Driver_Resolution>})] spids: [37645 37659] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_AdvancedOptions>})] spids: [37665 37679] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_PerformanceOptions>})] spids: [37685 37699] ) (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>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_SecurityOptions>})] spids: [37705 37719] ) (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 6>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_GpumemoryOptions>})] spids: [37725 37739] ) (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 7>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_LanguageOptions>})] spids: [37745 37759] ) (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 8>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters>})] spids: [37765 37779] ) (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 9>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters_Ethernet>})] spids: [37785 37799] ) (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 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters_Wifi>})] spids: [37805 37819] ) (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 11>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Tools>})] spids: [37825 37839] ) (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 12>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_FilesystemBenchmark>})] spids: [37845 37859] ) (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 13>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Overclock>})] spids: [37865 37879] ) (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 14>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_AudioOptions>})] spids: [37885 37899] ) (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 15>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_StressTest>})] spids: [37905 37919] ) (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 16>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_Network_Nas_Misc>})] spids: [37925 37939] ) (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 17>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Menu_NetworkAdapters_Proxy>})] spids: [37945 37959] ) ] ) ] ) ) ] spids: [37557 37571] ) ] else_action: [ (C {<echo>} {<-e>} { (DQ <' >> Filesystem prep has not yet completed: '> <Id.Lit_BadBackslash '\\'> <'n Please wait for the system to reboot '> ) } ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] )