(BraceGroup children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:INPUT) op:assign_op.Equal rhs:{<0>} spids:[75])] ) (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:INPUT) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [102] ) ] ) ] spids: [79 99] ) ] ) (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>}) (C {<G_CHECK_ROOT_USER>}) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Cloudshell>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_CLOUDSHELL_VERSION) op: assign_op.Equal rhs: {<9>} spids: [139] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_TEMP) op: assign_op.Equal rhs: {(DQ <'/tmp/dietpi-cloudshell'>)} spids: [148] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROGRAM_NAME) op: assign_op.Equal rhs: {(DQ <DietPi-Cloudshell>)} spids: [155] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_ACTIVE) op: assign_op.Equal rhs: {<0>} spids: [162] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED) op: assign_op.Equal rhs: {<0>} spids: [166] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_TIME_HOUR_START) op: assign_op.Equal rhs: {<0>} spids: [170] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_TIME_HOUR_END) op: assign_op.Equal rhs: {<0>} spids: [174] ) ] ) (command.ShFunction name: RUN_BLANK_SCREEN_AT_SPECIFIC_TIME body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'current_hour='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <-H>}) ) } ) (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 '$BLANK_SCREEN_ACTIVE')} ) ) 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 '$BLANK_SCREEN_TIME_HOUR_START')} right: {($ Id.VSub_DollarName '$current_hour')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<clear>}) (C {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nScreen will be powered down in under 1 minute'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Simple words: [{<setterm>} {<--blank>} {<1>} {<--powersave>} {<on>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/tty1'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_ACTIVE) op: assign_op.Equal rhs: {<1>} spids: [275] ) ] ) ] spids: [223 237] ) ] ) ] spids: [207 219] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END')} right: {($ Id.VSub_DollarName '$current_hour')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<setterm>} {<--blank>} {<poke>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/tty1'>} ) ] do_fork: T ) (command.Simple words: [{<setterm>} {<--reset>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/tty1'>} ) ] do_fork: T ) (command.Simple words: [{<setterm>} {<--blank>} {<0>} {<--powersave>} {<off>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/tty1'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLANK_SCREEN_ACTIVE) op: assign_op.Equal rhs: {<0>} spids: [339] ) ] ) ] spids: [287 301] ) ] ) ] ) ) (command.ShFunction name: BC_ADD_LEADING_ZERO body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'return_value='> ($ Id.VSub_Number '$1')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name return_value> suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 1>} ) ) ) } {<Id.Lit_Equals '='>} {(DQ <.>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: {(DQ <0> ($ Id.VSub_DollarName '$return_value'))} spids: [408] ) ] ) ] spids: [382 405] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name return_value> suffix_op: (suffix_op.Slice begin: {<Id.Lit_Digits 0>} length: {<Id.Lit_Digits 2>} ) ) ) } {<Id.Lit_Equals '='>} {(DQ <-.>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$return_value'))}) (C {<sed>} {(SQ <'s/^-./-0./'>)}) ] negated: F ) ) } spids: [446] ) ] ) ] spids: [420 443] ) ] ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$return_value'))}) ] ) ) (command.ShFunction name: BYTE_PRINT_CONVERSION body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'return_value='> <0>}) (C {<local>} {<Id.Lit_VarLike 'decimal_count='> <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_Number '$1')} right: {<Id.Lit_Digits 1048576>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> ($ Id.VSub_Number '$1') <' / 1024'> ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) <' KB'> ) } spids: [536] ) ] ) ] spids: [515 529] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1073741824>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> ($ Id.VSub_Number '$1') <' / 1024 / 1024'> ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) <' MB'> ) } spids: [586] ) ] ) ] spids: [565 579] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> ($ Id.VSub_Number '$1') <' / 1024 / 1024 / 1024'> ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) <' GB'> ) } spids: [622] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BC_ADD_LEADING_ZERO>} {(DQ ($ Id.VSub_DollarName '$return_value'))}) ) } spids: [655] ) ] ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$return_value'))}) ] ) ) (command.ShFunction name: BIT_PRINT_CONVERSION body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'return_value='> <0>}) (C {<local>} {<Id.Lit_VarLike 'decimal_count='> <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_Number '$1')} right: {<Id.Lit_Digits 1000000>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> ($ Id.VSub_Number '$1') <' * 8 / 1000'> ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) <' Kbit'> ) } spids: [740] ) ] ) ] spids: [719 733] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Digits 1000000000>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> ($ Id.VSub_Number '$1') <' * 8 / 1000 / 1000'> ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) <' Mbit'> ) } spids: [789] ) ] ) ] spids: [768 782] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale='> ($ Id.VSub_DollarName '$decimal_count') <'; '> ($ Id.VSub_Number '$1') <' * 8 / 1000 / 1000 / 1000'> ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) <' Gbit'> ) } spids: [824] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:return_value) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BC_ADD_LEADING_ZERO>} {(DQ ($ Id.VSub_DollarName '$return_value'))}) ) } spids: [856] ) ] ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$return_value'))}) ] ) ) (command.ShFunction name: Enable_Term_Options body: (BraceGroup children: [ (C {<setfont>} {<'/usr/share/consolefonts/Uni3-TerminusBold32x16'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<tput>} {<lines>}) ) } right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<setfont>} {<'/usr/share/consolefonts/Uni3-TerminusBold24x12.psf'>})] spids: [904 922] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_RESET) op: assign_op.Equal rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[0m'>)} spids: [952] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_REVERSE) op: assign_op.Equal rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[7m'>)} spids: [959] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_BOLD) op: assign_op.Equal rhs: {(DQ <Id.Lit_BadBackslash '\\'> <'e[1m'>)} spids: [971] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCOLOUR) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <Id.Lit_BadBackslash '\\'> <'e[39m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[31m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[32m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[33m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[34m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[35m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[36m'>)} {(DQ <Id.Lit_BadBackslash '\\'> <'e[93m'>)} ] ) } spids: [1015] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USER_COLOUR_INDEX) op: assign_op.Equal rhs: {<3>} spids: [1075] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: {<0>} spids: [1080] ) ] ) (command.ShFunction name: Percent_To_Graph body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'input_value='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<echo>} {($ Id.VSub_Number '$1')}) (C {<cut>} {<-d.>} {<-f1>})] negated: F ) ) } ) (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 '$input_value')} right: {<Id.Lit_Digits 100>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:input_value) op: assign_op.Equal rhs: {<100>} spids: [1144] ) ] ) ] spids: [1127 1141] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:input_value) op: assign_op.Equal rhs: {<0>} spids: [1165] ) ] ) ] spids: [1148 1162] ) ] ) (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 '$input_value')} right: {<Id.Lit_Digits 95>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) <------WARNING-----> ($ Id.VSub_DollarName '$C_RESET') <']'> ) } spids: [1198] ) ] ) ] spids: [1181 1195] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 90>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) <-----------------> ($ Id.VSub_DollarName '$C_RESET') <'-]'> ) } spids: [1233] ) ] ) ] spids: [1216 1230] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 88>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) <----------------> ($ Id.VSub_DollarName '$C_RESET') <'--]'> ) } spids: [1268] ) ] ) ] spids: [1251 1265] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 82>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) <---------------> ($ Id.VSub_DollarName '$C_RESET') <'---]'> ) } spids: [1303] ) ] ) ] spids: [1286 1300] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 76>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) <--------------> ($ Id.VSub_DollarName '$C_RESET') <'----]'> ) } spids: [1338] ) ] ) ] spids: [1321 1335] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 70>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) <-------------> ($ Id.VSub_DollarName '$C_RESET') <'-----]'> ) } spids: [1373] ) ] ) ] spids: [1356 1370] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 64>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) <------------> ($ Id.VSub_DollarName '$C_RESET') <'------]'> ) } spids: [1408] ) ] ) ] spids: [1391 1405] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 56>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) <-----------> ($ Id.VSub_DollarName '$C_RESET') <'-------]'> ) } spids: [1443] ) ] ) ] spids: [1426 1440] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 50>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) <----------> ($ Id.VSub_DollarName '$C_RESET') <'--------]'> ) } spids: [1478] ) ] ) ] spids: [1461 1475] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 44>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) <---------> ($ Id.VSub_DollarName '$C_RESET') <'---------]'> ) } spids: [1513] ) ] ) ] spids: [1496 1510] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 38>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <--------> ($ Id.VSub_DollarName '$C_RESET') <'----------]'> ) } spids: [1548] ) ] ) ] spids: [1531 1545] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 32>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <-------> ($ Id.VSub_DollarName '$C_RESET') <'-----------]'> ) } spids: [1583] ) ] ) ] spids: [1566 1580] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 26>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <------> ($ Id.VSub_DollarName '$C_RESET') <'------------]'> ) } spids: [1618] ) ] ) ] spids: [1601 1615] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <-----> ($ Id.VSub_DollarName '$C_RESET') <'-------------]'> ) } spids: [1653] ) ] ) ] spids: [1636 1650] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 15>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <----> ($ Id.VSub_DollarName '$C_RESET') <'--------------]'> ) } spids: [1688] ) ] ) ] spids: [1671 1685] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 10>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <---> ($ Id.VSub_DollarName '$C_RESET') <'---------------]'> ) } spids: [1723] ) ] ) ] spids: [1706 1720] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$input_value')} right: {<Id.Lit_Digits 5>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <--> ($ Id.VSub_DollarName '$C_RESET') <'----------------]'> ) } spids: [1758] ) ] ) ] spids: [1741 1755] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_PERCENT_GRAPH) op: assign_op.Equal rhs: { (DQ <' '> ($ Id.VSub_DollarName '$input_value') <'% ['> ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <-> ($ Id.VSub_DollarName '$C_RESET') <'-----------------]'> ) } spids: [1779] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE) op: assign_op.Equal rhs: {<0>} spids: [1817] ) ] ) (command.ShFunction name: Obtain_Temperature_Conversion 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 '$TEMPERATURE_OUTPUT_TYPE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<awk>} { (DQ <'BEGIN {printf '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) <'%.0f'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <','> ($ Id.VSub_DollarName '$TEMPERATURE_CONVERSION_VALUE') <' * 1.8 + 32'> ) <Id.Lit_RBrace '}'> } ) ) } spids: [1845] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE) op: assign_op.PlusEqual rhs: {(DQ <'\'f'>)} spids: [1862] ) ] ) ] spids: [1828 1842] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE) op: assign_op.PlusEqual rhs: {(DQ <'\'c'>)} spids: [1871] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DATE_TIME) op: assign_op.Equal rhs: {<0>} spids: [1885] ) ] ) (command.ShFunction name: Obtain_DATE_TIME body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DATE_TIME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%a %x - %R'>)}) ) } spids: [1896] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UPTIME) op: assign_op.Equal rhs: {<0>} spids: [1912] ) ] ) (command.ShFunction name: Obtain_UPTIME body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fSeconds='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<cat>} {<'/proc/uptime'>}) (C {<awk>} {(SQ <'{print $1}'>)})] negated: F ) ) } ) (C {<local>} {<Id.Lit_VarLike 'seconds='> (braced_var_sub token: <Id.VSub_Name fSeconds> suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<'.*'>}) ) } ) (C {<local>} {<Id.Lit_VarLike 'minutes='> <0>}) (C {<local>} {<Id.Lit_VarLike 'hours='> <0>}) (C {<local>} {<Id.Lit_VarLike 'days='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$seconds')} right: {<Id.Lit_Digits 60>} ) ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike minutes> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seconds) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$seconds')} right: {<Id.Lit_Digits 60>} ) ) } spids: [1995] ) ] ) ] ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$minutes')} right: {<Id.Lit_Digits 60>} ) ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike hours> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:minutes) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$minutes')} right: {<Id.Lit_Digits 60>} ) ) } spids: [2036] ) ] ) ] ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$hours')} right: {<Id.Lit_Digits 24>} ) ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike days> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hours) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$hours')} right: {<Id.Lit_Digits 24>} ) ) } spids: [2077] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UPTIME) op: assign_op.Equal rhs: { (DQ <'Uptime: '> ($ Id.VSub_DollarName '$days') <' Day, '> ($ Id.VSub_DollarName '$hours') <' Hour'> ) } spids: [2094] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_GOV) op: assign_op.Equal rhs: {<0>} spids: [2113] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP) op: assign_op.Equal rhs: {<0>} spids: [2117] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_CPUTEMP) op: assign_op.Equal rhs: {<0>} spids: [2121] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_FREQ_1) op: assign_op.Equal rhs: {<0>} spids: [2125] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_FREQ_2) op: assign_op.Equal rhs: {<0>} spids: [2129] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_USAGE) op: assign_op.Equal rhs: {<0>} spids: [2133] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TOTALPROCESSES) op: assign_op.Equal rhs: {<0>} spids: [2137] ) ] ) (command.ShFunction name: Obtain_CPU body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TOTALPROCESSES) 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 {<ps>} {<--ppid>} {<2>} {<-p>} {<2>} {<--deselect>}) (C {<wc>} {<-l>}) ] negated: F ) ) } right: {<Id.Lit_Digits 2>} ) ) } spids: [2148] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_GOV) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor'>}) ) } spids: [2182] ) ] ) (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: [2190] ) ] ) (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.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 '$CPU_TEMP')} right: {<Id.Lit_Digits 65>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_CPUTEMP) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) } spids: [2243] ) ] ) ] spids: [2225 2239] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$CPU_TEMP')} right: {<Id.Lit_Digits 50>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_CPUTEMP) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 3>}) ) } spids: [2271] ) ] ) ] spids: [2253 2267] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$CPU_TEMP')} right: {<Id.Lit_Digits 35>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_CPUTEMP) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) } spids: [2299] ) ] ) ] spids: [2281 2295] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:C_CPUTEMP) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 4>}) ) } spids: [2313] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_CONVERSION_VALUE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$CPU_TEMP')} spids: [2331] ) ] ) (C {<Obtain_Temperature_Conversion>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$TEMPERATURE_CONVERSION_VALUE')} spids: [2338] ) ] ) ] spids: [2197 2217] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_FREQ_1) 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>} {<'/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'>} ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [2347] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_FREQ_2) op: assign_op.Equal rhs: {(DQ <'N/A'>)} spids: [2364] ) ] ) (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:CPU_FREQ_2) 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>} { < '/sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq' > } ) ) } right: {<Id.Lit_Digits 1000>} ) ) } spids: [2393] ) ] ) ] spids: [2375 2389] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_USAGE) op: assign_op.Equal rhs: {<0>} spids: [2415] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_TEMP) op: assign_op.Equal rhs: {(DQ <'/tmp/.cpu_usage'>)} spids: [2419] ) ] ) (command.Pipeline children: [ (C {<ps>} {<-axo>} {<Id.Lit_Other '%'> <cpu>}) (C {<sed>} {(SQ <1d>)}) (command.Simple words: [{<sed>} {(SQ <'s/ //'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))} ) ] do_fork: T ) ] negated: F ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<-r>} {<line>})]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_USAGE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale=1;'> ($ Id.VSub_DollarName '$CPU_USAGE') <' + '> ($ Id.VSub_DollarName '$line') ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) } spids: [2473] ) ] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$FP_TEMP')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_USAGE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} { (DQ <'scale=0;'> ($ Id.VSub_DollarName '$CPU_USAGE') <' / '> ($ Id.VSub_DollarName '$G_HW_CPU_CORES') ) } ) (C {<bc>} {<-l>}) ] negated: F ) ) } spids: [2507] ) ] ) (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$CPU_USAGE')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_USAGE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')} spids: [2550] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_STORAGE) op: assign_op.Equal rhs: {<6>} spids: [2567] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STORAGE_TOTAL) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [2571] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STORAGE_USED) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [2576] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STORAGE_FREE) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [2581] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STORAGE_PERCENT) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [2586] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STORAGE_PATH) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [2591] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STORAGE_NAME) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [2596] ) ] ) (command.ShFunction name: Init_STORAGE body: (BraceGroup children: [ (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.VSub_DollarName '$MAX_STORAGE')} ) 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.IndexedName name: STORAGE_TOTAL index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'N/A'>)} spids: [2631] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_USED index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'N/A'>)} spids: [2641] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_FREE index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'N/A'>)} spids: [2651] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PERCENT index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <' Not installed'>)} spids: [2661] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_NAME index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {<0>} 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 '$i')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PATH index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'/'>)} spids: [2702] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_NAME index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'Flash/RootFS Storage: '>)} spids: [2712] ) ] ) ] spids: [2684 2698] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PATH index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(DQ <'/mnt/usb_'> ($ Id.VSub_DollarName '$i'))} spids: [2727] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_NAME index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(DQ <'Storage '> ($ Id.VSub_DollarName '$i') <': '>)} spids: [2738] ) ] ) ] ) ] ) ) ] ) ) (command.ShFunction name: Destroy_STORAGE body: (BraceGroup children: [ (C {<unset>} {<STORAGE_TOTAL>}) (C {<unset>} {<STORAGE_USED>}) (C {<unset>} {<STORAGE_FREE>}) (C {<unset>} {<STORAGE_PERCENT>}) (C {<unset>} {<STORAGE_PATH>}) (C {<unset>} {<STORAGE_NAME>}) ] ) ) (command.ShFunction name: Obtain_STORAGE body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'index_start='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'index_end='> ($ Id.VSub_Number '$2')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_TEMP) op: assign_op.Equal rhs: {(DQ <'/tmp/.df'>)} spids: [2829] ) ] ) (C {<rm>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}) (C {<local>} {<Id.Lit_VarLike 'df_failed='> <0>}) (command.Sentence child: (command.Simple words: [{<df>} {<-Ph>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$FP_TEMP')} ) ] do_fork: T ) terminator: <Id.Op_Amp _> ) (C {<local>} {<Id.Lit_VarLike 'pid='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} {($ Id.VSub_Bang '$!')}) ) } ) (C {<local>} {<Id.Lit_VarLike 'max_seconds='> <4>}) (C {<local>} {<Id.Lit_VarLike 'current_seconds='> <0>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<ps>} {<aux>}) (C {<awk>} {(SQ <'{print $2}'>)}) (C {<grep>} {<-ci>} {<-m1>} {(DQ ($ Id.VSub_DollarName '$pid') <Id.Lit_Dollar '$'>)} ) ] negated: F ) ) } ) ] ) body: (command.DoGroup children: [ (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 '$current_seconds')} right: {($ Id.VSub_DollarName '$max_seconds')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'DF failed, unable to obtain drive data'>)} ) (C {<sleep>} {<2>}) (C {<kill>} {($ Id.VSub_DollarName '$pid')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:df_failed) op: assign_op.Equal rhs: {<1>} spids: [2981] ) ] ) (command.Simple words: [ {<echo>} {<-e>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) <' | df failed to respond'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [2937 2951] ) ] else_action: [ (C {<sleep>} {<1>}) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike current_seconds> ) ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:{($ Id.VSub_DollarName '$df_failed')}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$index_start')} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$index_end')} ) 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.IndexedName name: STORAGE_PERCENT index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } spids: [3069] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_FREE index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'DF failed'>)} spids: [3084] ) ] ) ] ) ) ] spids: [3032 3042] ) ] else_action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$index_start')} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$index_end')} ) 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: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-ci>} {<-m1>} { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <Id.Lit_Dollar '$'> ) } ) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_TOTAL index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <Id.Lit_Dollar '$'> ) } ) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [3162] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_TOTAL index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.PlusEqual rhs: {(SQ <B>)} spids: [3198] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_USED index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <Id.Lit_Dollar '$'> ) } ) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [3208] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_USED index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.PlusEqual rhs: {(SQ <B>)} spids: [3244] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_FREE index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <Id.Lit_Dollar '$'> ) } ) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } spids: [3254] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_FREE index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.PlusEqual rhs: {(SQ <B>)} spids: [3290] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PERCENT index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <Id.Lit_Dollar '$'> ) } ) (C {<awk>} {(SQ <'{print $5}'>)}) (C {<sed>} {(SQ <'s/%//g'>)}) ] negated: F ) ) } spids: [3300] ) ] ) (C {<Percent_To_Graph>} { (braced_var_sub token: <Id.VSub_Name STORAGE_PERCENT> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PERCENT index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')} spids: [3355] ) ] ) (command.Simple words: [ {<echo>} {<-e>} {(DQ <'Results success:'> <Id.Lit_BadBackslash '\\'> <n>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} {(DQ <' - Index = '> ($ Id.VSub_DollarName '$i'))} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <' - Path = '> (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <' - Total = '> (braced_var_sub token: <Id.VSub_Name STORAGE_TOTAL> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) ] spids: [3126 3158] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PERCENT index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } spids: [3440] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_FREE index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <'Mount not active'>)} spids: [3455] ) ] ) (command.Simple words: [ {<echo>} {<-e>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) <' | Mount not found:'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <' - Index = '> ($ Id.VSub_DollarName '$i'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <' - Path = '> (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [{<cat>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/log/dietpi-cloudshell.log'>} ) ] do_fork: T ) ] ) ] ) ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_VERSION_CURRENT) op: assign_op.Equal rhs: {<0>} spids: [3569] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE) op: assign_op.Equal rhs: {<0>} spids: [3573] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_WEBSITE) op: assign_op.Equal rhs: {(SQ <dietpi.com>)} spids: [3577] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_TWITTER) op: assign_op.Equal rhs: {(DQ <'@dietpi_'>)} spids: [3583] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_HW_DESCRIPTION) op: assign_op.Equal rhs: {(DQ <'N/A'>)} spids: [3589] ) ] ) (command.ShFunction name: Obtain_DIETPIINFO body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_VERSION_CURRENT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>}) ) <.> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>}) ) ($ Id.VSub_DollarName '$C_RESET') ) } spids: [3606] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_HW_DESCRIPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.hw_model'>}) ) } spids: [3642] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE) op: assign_op.Equal rhs: {(DQ <'N/A'>)} spids: [3659] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/DietPi/dietpi/.update_available'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_VERSION_CURRENT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 1>}) ) (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>}) ) <.> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>}) ) ($ Id.VSub_DollarName '$C_RESET') ) } spids: [3684] ) ] ) (C {<local>} {<Id.Lit_VarLike 'update_version='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/DietPi/dietpi/.update_available'>}) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$update_version'))} {<Id.Lit_Equals '='>} {(SQ <-1>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) <'New Image'> ($ Id.VSub_DollarName '$C_RESET') ) } spids: [3747] ) ] ) ] spids: [3726 3743] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIETPI_UPDATE_AVAILABLE) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) ) ($ Id.VSub_DollarName '$update_version') ($ Id.VSub_DollarName '$C_RESET') ) } spids: [3765] ) ] ) ] ) ] spids: [3665 3676] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_ADAPTER) op: assign_op.Equal rhs: {(SQ <eth0>)} spids: [3795] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_IP_INT) op: assign_op.Equal rhs: {<0>} spids: [3801] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MAC_ADDRESS) op: assign_op.Equal rhs: {<0>} spids: [3805] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_SIGNAL_STRENGTH) op: assign_op.Equal rhs: {<0>} spids: [3809] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_DUPLEXSPEED) op: assign_op.Equal rhs: {<0>} spids: [3813] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_HOSTNAME) op: assign_op.Equal rhs: {<0>} spids: [3817] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MODE) op: assign_op.Equal rhs: {<0>} spids: [3821] ) ] ) (command.ShFunction name: Obtain_NETWORK_DETAILS body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_TEMP) op: assign_op.Equal rhs: {(DQ <'/tmp/.ifconfig'>)} spids: [3835] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_HOSTNAME) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>}))} spids: [3846] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_ADAPTER) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<3p>} {<'/DietPi/dietpi/.network'>}) ) } spids: [3857] ) ] ) (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>} {<'/etc/network/interfaces'>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'iface '> ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') <' inet dhcp'> ) } ) ] negated: F ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MODE) op: assign_op.Equal rhs: {(DQ <Dhcp>)} spids: [3905] ) ] ) ] spids: [3874 3902] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MODE) op: assign_op.Equal rhs: {(DQ <Static>)} spids: [3914] ) ] ) ] ) (command.Simple words: [{<ifconfig>} {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$FP_TEMP')} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_IP_INT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}) (C {<grep>} {<-m1>} {(SQ <'inet '>)}) (C {<cut>} {<-d> <Id.Lit_Colon ':'>} {<-f2>}) (C {<awk>} {(SQ <'{ print $1}'>)}) ] negated: F ) ) } spids: [3942] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_MAC_ADDRESS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/class/net/'> ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') <'/address'> } ) ) } spids: [3978] ) ] ) (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 {<echo>} {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')} ) (C {<grep>} {<-ci>} {<-m1>} {(SQ <wlan>)}) ] negated: F ) ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_SIGNAL_STRENGTH) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iwconfig>} {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')} ) (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: [4030] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_DUPLEXSPEED) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<iwconfig>} {($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER')} ) (C {<grep>} {<-m1>} {(SQ <'Bit Rate:'>)}) (C {<awk>} {(SQ <'{ print $2 }'>)}) (C {<sed>} {(SQ <'s/Rate://g'>)}) ] negated: F ) ) <Mbit> ) } spids: [4079] ) ] ) ] spids: [3997 4027] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_DUPLEXSPEED) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/sys/class/net/'> ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') <'/speed'> } ) ) <' Mbit'> ) } spids: [4123] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_DETAILS_SIGNAL_STRENGTH) op: assign_op.Equal rhs: {(DQ <'N/A'>)} spids: [4140] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_SENT) op: assign_op.Equal rhs: {<0>} spids: [4158] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_RECIEVED) op: assign_op.Equal rhs: {<0>} spids: [4162] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_SENT) op: assign_op.Equal rhs: {<0>} spids: [4167] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_RECIEVED) op: assign_op.Equal rhs: {<0>} spids: [4171] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_INIT) op: assign_op.Equal rhs: {<0>} spids: [4175] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_SECONDS_SINCE_LAST_UPDATE) op: assign_op.Equal rhs: {<0>} spids: [4179] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_SENT) op: assign_op.Equal rhs: {<0>} spids: [4184] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_RECIEVED) op: assign_op.Equal rhs: {<0>} spids: [4188] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_SENT) op: assign_op.Equal rhs: {<0>} spids: [4192] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_RECIEVED) op: assign_op.Equal rhs: {<0>} spids: [4196] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_OF_MONTH) op: assign_op.Equal rhs: {<-1>} spids: [4200] ) ] ) (command.ShFunction name: Obtain_NETWORK_USAGE body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'run_update='> <1>}) (C {<local>} {<Id.Lit_VarLike 'mtu_size='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<netstat>} {<-N>} {<-i>}) (C {<grep>} {(DQ ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER'))}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$mtu_size')} 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:run_update) op: assign_op.Equal rhs: {<0>} spids: [4276] ) ] ) ] spids: [4251 4273] ) ] ) (C {<local>} {<Id.Lit_VarLike 'network_usage_current_recieved='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<netstat>} {<-N>} {<-i>}) (C {<grep>} {(DQ ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER'))}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$network_usage_current_recieved')} 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:run_update) op: assign_op.Equal rhs: {<0>} spids: [4337] ) ] ) ] spids: [4312 4334] ) ] ) (C {<local>} {<Id.Lit_VarLike 'network_usage_current_sent='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<netstat>} {<-N>} {<-i>}) (C {<grep>} {(DQ ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER'))}) (C {<awk>} {(SQ <'{print $8}'>)}) ] negated: F ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$network_usage_current_sent')} 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:run_update) op: assign_op.Equal rhs: {<0>} spids: [4398] ) ] ) ] spids: [4373 4395] ) ] ) (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_update')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'total_previous_sent='> ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT') } ) (C {<local>} {<Id.Lit_VarLike 'total_previous_recieved='> ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED') } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_RECIEVED) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$network_usage_current_recieved')} right: {($ Id.VSub_DollarName '$mtu_size')} ) ) } spids: [4446] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_TOTAL_CURRENT_SENT) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName '$network_usage_current_sent')} right: {($ Id.VSub_DollarName '$mtu_size')} ) ) } spids: [4459] ) ] ) (C {<local>} {<Id.Lit_VarLike 'seconds_since_last_update='> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) ) } right: {($ Id.VSub_DollarName '$NETWORK_USAGE_SECONDS_SINCE_LAST_UPDATE')} ) ) } ) (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 '$NETWORK_USAGE_NOW_INIT')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_SENT) op: assign_op.Equal rhs: {<0>} spids: [4524] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_RECIEVED) op: assign_op.Equal rhs: {<0>} spids: [4528] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_INIT) op: assign_op.Equal rhs: {<1>} spids: [4533] ) ] ) ] spids: [4507 4521] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_SENT) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Minus left: { ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT' ) } right: {($ Id.VSub_DollarName '$total_previous_sent')} ) right: {($ Id.VSub_DollarName '$seconds_since_last_update')} ) ) } spids: [4545] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_NOW_CURRENT_RECIEVED) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Minus left: { ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED' ) } right: {($ Id.VSub_DollarName '$total_previous_recieved')} ) right: {($ Id.VSub_DollarName '$seconds_since_last_update')} ) ) } spids: [4566] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_SECONDS_SINCE_LAST_UPDATE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) ) } spids: [4595] ) ] ) (C {<local>} {<Id.Lit_VarLike 'dayofmonth='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> (DQ <'%d'>)}) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_OF_MONTH'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$dayofmonth'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_SENT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')} spids: [4677] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_PREVIOUS_RECIEVED) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED')} spids: [4681] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_OF_MONTH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$dayofmonth')} spids: [4685] ) ] ) ] spids: [4652 4670] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_SENT) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')} right: {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_PREVIOUS_SENT')} ) ) } spids: [4698] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_DAY_CURRENT_RECIEVED) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { ($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED') } right: {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_PREVIOUS_RECIEVED')} ) ) } spids: [4711] ) ] ) ] spids: [4407 4421] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_TOTAL) op: assign_op.Equal rhs: {<0>} spids: [4737] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_FREE) op: assign_op.Equal rhs: {<0>} spids: [4741] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_USED) op: assign_op.Equal rhs: {<0>} spids: [4745] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_CACHED) op: assign_op.Equal rhs: {<0>} spids: [4749] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_PERCENT) op: assign_op.Equal rhs: {<0>} spids: [4753] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPTOTAL) op: assign_op.Equal rhs: {<0>} spids: [4757] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPUSED) op: assign_op.Equal rhs: {<0>} spids: [4761] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPFREE) op: assign_op.Equal rhs: {<0>} spids: [4765] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT) op: assign_op.Equal rhs: {<0>} spids: [4769] ) ] ) (command.ShFunction name: Obtain_MEMORY body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_TEMP) op: assign_op.Equal rhs: {(DQ <'/tmp/.mem'>)} spids: [4784] ) ] ) (command.Simple words: [{<free>} {<-m>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$FP_TEMP')} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_TOTAL) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Mem: '>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [4804] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_CACHED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Mem: '>)}) (C {<awk>} {(SQ <'{print $7}'>)}) ] negated: F ) ) } spids: [4834] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_USED) 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 {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Mem: '>)}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } right: {($ Id.VSub_DollarName '$MEMORY_CACHED')} ) ) } spids: [4860] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_FREE) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Mem: '>)}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } right: {($ Id.VSub_DollarName '$MEMORY_CACHED')} ) ) } spids: [4895] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_PERCENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>}) (C {<awk>} { (DQ <'{print '> ($ Id.VSub_DollarName '$MEMORY_USED') <' / '> ($ Id.VSub_DollarName '$MEMORY_TOTAL') <' * 100}'> ) } ) ] negated: F ) ) } spids: [4930] ) ] ) (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$MEMORY_PERCENT')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_PERCENT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')} spids: [4958] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPTOTAL) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Swap: '>)}) (C {<awk>} {(SQ <'{print $2}'>)}) ] negated: F ) ) } spids: [4967] ) ] ) (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 '$MEMORY_SWAPTOTAL')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPUSED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Swap: '>)}) (C {<awk>} {(SQ <'{print $3}'>)}) ] negated: F ) ) } spids: [5014] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPFREE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName '$FP_TEMP')}) (C {<grep>} {<-m1>} {(SQ <'Swap: '>)}) (C {<awk>} {(SQ <'{print $4}'>)}) ] negated: F ) ) } spids: [5040] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>}) (C {<awk>} { (DQ <'{print '> ($ Id.VSub_DollarName '$MEMORY_SWAPUSED') <' / '> ($ Id.VSub_DollarName '$MEMORY_SWAPTOTAL') <' * 100}'> ) } ) ] negated: F ) ) } spids: [5066] ) ] ) (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$MEMORY_SWAPERCENT')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')} spids: [5095] ) ] ) ] spids: [4997 5011] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MEMORY_SWAPERCENT) op: assign_op.Equal rhs: {(DQ <' Disabled'>)} spids: [5102] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_QUERY_COUNT) op: assign_op.Equal rhs: {<0>} spids: [5122] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_ADS) op: assign_op.Equal rhs: {<0>} spids: [5126] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_PERCENT_ADS) op: assign_op.Equal rhs: {<0>} spids: [5130] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_DOMAINS) op: assign_op.Equal rhs: {<0>} spids: [5134] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_LAST_DOMAIN_BLOCKED) op: assign_op.Equal rhs: {<0>} spids: [5138] ) ] ) (command.ShFunction name: Obtain_PIHOLE body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'pihole_log_file='> (DQ <'/var/log/pihole.log'>)}) (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 '$PIHOLE_TOTAL_DOMAINS')} 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 '['>} {<-f>} {<'/etc/pihole/gravity.list'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_DOMAINS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<wc>} {<-l>} {<'/etc/pihole/gravity.list'>}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F ) ) } spids: [5193] ) ] ) ] spids: [5179 5190] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_DOMAINS) op: assign_op.Equal rhs: {(DQ <'Not Installed'>)} spids: [5214] ) ] ) ] ) ] spids: [5162 5176] ) ] ) (C {<local>} {<Id.Lit_VarLike 'today='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> (SQ <'%b %e'>)}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_QUERY_COUNT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_DollarName '$pihole_log_file'))}) (C {<grep>} {(DQ ($ Id.VSub_DollarName '$today'))}) (C {<awk>} {(SQ <'/query/ {print $7}'>)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [5242] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_LessEqual left: {($ Id.VSub_DollarName '$PIHOLE_QUERY_COUNT')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_QUERY_COUNT) op: assign_op.Equal rhs: {<1>} spids: [5295] ) ] ) ] spids: [5278 5292] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_TOTAL_ADS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_DollarName '$pihole_log_file'))}) (C {<grep>} {(DQ ($ Id.VSub_DollarName '$today'))}) (C {<awk>} {(SQ <'/\\/etc\\/pihole\\/gravity.list/ {print $7}'>)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [5303] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_PERCENT_ADS) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>}) (C {<awk>} { (DQ <'{print '> ($ Id.VSub_DollarName '$PIHOLE_TOTAL_ADS') <' / '> ($ Id.VSub_DollarName '$PIHOLE_QUERY_COUNT') <' * 100}'> ) } ) ] negated: F ) ) } spids: [5335] ) ] ) (C {<Percent_To_Graph>} {($ Id.VSub_DollarName '$PIHOLE_PERCENT_ADS')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_PERCENT_ADS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$C_PERCENT_GRAPH')} spids: [5363] ) ] ) (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 '$PIHOLE_TOTAL_ADS')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_LAST_DOMAIN_BLOCKED) op: assign_op.Equal rhs: {(DQ <None>)} spids: [5389] ) ] ) ] spids: [5372 5386] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PIHOLE_LAST_DOMAIN_BLOCKED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<tac>} {<'/var/log/pihole.log'>}) (C {<grep>} {<-m1>} {(SQ <gravity.list>)}) (C {<awk>} {(SQ <'{print $6}'>)}) (C {<cut>} {<-c>} {<1-24>}) ] negated: F ) ) } spids: [5398] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RUN_INTRO) op: assign_op.Equal rhs: {<0>} spids: [5453] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$INPUT')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RUN_INTRO) op: assign_op.Equal rhs: {<1>} spids: [5474] ) ] ) ] spids: [5457 5471] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCENE_CURRENT) op: assign_op.Equal rhs: {<2>} spids: [5486] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAX_SCENES) op: assign_op.Equal rhs: {<9>} spids: [5490] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REFRESH_RATE) op: assign_op.Equal rhs: {<5>} spids: [5499] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_OUTPUT_TYPE) op: assign_op.Equal rhs: {<1>} spids: [5508] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETWORK_USAGE_CURRENT_OUTPUT_TYPE) op: assign_op.Equal rhs: {<0>} spids: [5517] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aEnabledScenes) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _>)} spids: [5526] ) ] ) (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.VSub_DollarName '$MAX_SCENES')} ) 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.IndexedName name: aEnabledScenes index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {<1>} spids: [5553] ) ] ) ] ) ) (command.ShFunction name: Run_Intro body: (BraceGroup children: [ (C {<clear>}) (C {<local>} {<Id.Lit_VarLike 'aAnimation='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <' '>)} {(SQ <'i - c'>)} {(SQ <'P i - c l'>)} {(SQ <'t P i - c l o'>)} {(SQ <'e t P i- c l o u'>)} {(SQ <'i e t Pi- c l o u d s'>)} {(SQ <'D i etPi- c l o u d s h'>)} {(SQ <' D ietPi-c l o u d s h e'>)} {(SQ <' DietPi-cl o u d s h e '>)} {(SQ <' DietPi-clou d s h e l '>)} {(SQ <' DietPi-clouds h e l l '>)} {(SQ <' DietPi-cloudshe l l '>)} {(SQ <' DietPi-cloudshell '>)} ] ) } ) (C {<local>} {<Id.Lit_VarLike 'aBar='> (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} {(SQ <' '>)} ] ) } ) (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 aAnimation> 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 {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET'))}) (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) (braced_var_sub token: <Id.VSub_Name aAnimation> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') <' v'> ($ Id.VSub_DollarName '$DIETPI_CLOUDSHELL_VERSION') ) } ) (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} {(DQ <' Loading...'>)}) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') (braced_var_sub token: <Id.VSub_Name aBar> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) ) } ) (C {<sleep>} {<0.2>}) ] ) ) (C {<unset>} {<aAnimation>}) (C {<unset>} {<aBar>}) (C {<sleep>} {<0.1>}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BANNER_PRINT) op: assign_op.Equal rhs: {<0>} spids: [5919] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BANNER_MODE) op: assign_op.Equal rhs: {<0>} spids: [5923] ) ] ) (command.ShFunction name: Update_Banner 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 '$BANNER_MODE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BANNER_PRINT) op: assign_op.Equal rhs: { (DQ <'DietPi - Cloudshell v'> ($ Id.VSub_DollarName '$DIETPI_CLOUDSHELL_VERSION') ) } spids: [5955] ) ] ) ] spids: [5938 5952] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$BANNER_MODE')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Obtain_DATE_TIME>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BANNER_PRINT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$DATE_TIME')} spids: [5982] ) ] ) ] spids: [5962 5976] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$BANNER_MODE')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Obtain_UPTIME>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BANNER_PRINT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$UPTIME')} spids: [6006] ) ] ) ] spids: [5986 6000] ) ] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike BANNER_MODE> ) ) (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 '$BANNER_MODE')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BANNER_MODE) op: assign_op.Equal rhs: {<0>} spids: [6047] ) ] ) ] spids: [6030 6044] ) ] ) ] ) ) (command.ShFunction name: Update_Scene_0 body: (BraceGroup children: [ (C {<Obtain_CPU>}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' CPU Usage: '> ) } ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$CPU_USAGE'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' CPU Stats: '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Temp '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$C_CPUTEMP') ($ Id.VSub_DollarName '$CPU_TEMP') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Processes '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$CPU_TOTALPROCESSES') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Governor '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$CPU_GOV') ) } ) (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: [ (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Freq 0-3 '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$CPU_FREQ_1') <' mhz'> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Freq 4-7 '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$CPU_FREQ_2') <' mhz'> ) } ) ] spids: [6233 6247] ) ] else_action: [ (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Freq '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$CPU_FREQ_1') <' mhz'> ) } ) ] ) ] ) ) (command.ShFunction name: Update_Scene_1 body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'index_1='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'index_2='> ($ Id.VSub_Number '$2')}) (C {<Obtain_STORAGE>} {($ Id.VSub_DollarName '$index_1')} {($ Id.VSub_DollarName '$index_2')} ) (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' '> (braced_var_sub token: <Id.VSub_Name STORAGE_NAME> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name STORAGE_PERCENT> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name STORAGE_USED> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')}) ) <' / '> (braced_var_sub token: <Id.VSub_Name STORAGE_TOTAL> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name STORAGE_FREE> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_1')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' '> (braced_var_sub token: <Id.VSub_Name STORAGE_NAME> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name STORAGE_PERCENT> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name STORAGE_USED> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')}) ) <' / '> (braced_var_sub token: <Id.VSub_Name STORAGE_TOTAL> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')}) ) ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name STORAGE_FREE> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$index_2')}) ) ) } ) ] ) ) (command.ShFunction name: Update_Scene_4 body: (BraceGroup children: [ (C {<Obtain_DIETPIINFO>}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' DietPi: '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Version '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$DIETPI_VERSION_CURRENT') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Updates '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$DIETPI_UPDATE_AVAILABLE') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Web '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$DIETPI_WEBSITE') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Twitter '> (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <':'> ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$DIETPI_TWITTER') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Device: '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$DIETPI_HW_DESCRIPTION') ) } ) ] ) ) (command.ShFunction name: Update_Scene_5 body: (BraceGroup children: [ (C {<Obtain_NETWORK_DETAILS>}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Details: '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' IP : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_IP_INT') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Mode : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_MODE') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Adapter : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_ADAPTER') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Duplex : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_DUPLEXSPEED') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Signal : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_SIGNAL_STRENGTH') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Hostname: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_HOSTNAME') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' MAC: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$NETWORK_DETAILS_MAC_ADDRESS') ) } ) ] ) ) (command.ShFunction name: Update_Scene_6 body: (BraceGroup children: [ (C {<Obtain_NETWORK_USAGE>}) (C {<local>} {<Id.Lit_VarLike 'total_sent_output='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BYTE_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_SENT')} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'total_recieved_output='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BYTE_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_TOTAL_CURRENT_RECIEVED')} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'today_sent_output='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BYTE_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_CURRENT_SENT')} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'today_recieved_output='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BYTE_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_DAY_CURRENT_RECIEVED')} ) ) } ) (C {<local>} {<Id.Lit_VarLike 'now_sent_output='> <0>}) (C {<local>} {<now_recieved_output0>}) (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 '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:now_sent_output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BIT_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_SENT')} ) ) } spids: [7092] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:now_recieved_output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BIT_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_RECIEVED')} ) ) } spids: [7102] ) ] ) ] spids: [7075 7089] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:now_sent_output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BYTE_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_SENT')} ) ) } spids: [7115] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:now_recieved_output) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<BYTE_PRINT_CONVERSION>} {($ Id.VSub_DollarName '$NETWORK_USAGE_NOW_CURRENT_RECIEVED')} ) ) } spids: [7125] ) ] ) ] ) (C {<clear>}) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Usage (TOTAL): '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Sent : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$total_sent_output') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Recieved : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$total_recieved_output') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Usage (TODAY): '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Sent : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$today_sent_output') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Recieved : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$today_recieved_output') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Network Usage (CURRENT): '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Sent : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$now_sent_output') <'/s'> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Recieved : '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$now_recieved_output') <'/s'> ) } ) ] ) ) (command.ShFunction name: Update_Scene_7 body: (BraceGroup children: [ (C {<Obtain_MEMORY>}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Memory Usage (RAM): '> ) } ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_PERCENT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_USED') <' MB / '> ($ Id.VSub_DollarName '$MEMORY_TOTAL') <' MB'> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_FREE') <' MB'> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Memory Usage (SWAP): '> ) } ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_SWAPERCENT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Used: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_SWAPUSED') <' MB / '> ($ Id.VSub_DollarName '$MEMORY_SWAPTOTAL') <' MB'> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Free: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$MEMORY_SWAPFREE') <' MB'> ) } ) ] ) ) (command.ShFunction name: Update_Scene_8 body: (BraceGroup children: [ (C {<Obtain_PIHOLE>}) (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$BANNER_PRINT'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Pi-hole stats (TODAY): '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Ads Blocked: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_TOTAL_ADS') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' DNS Queries: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_QUERY_COUNT') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) <' Blocked Domains: '> ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_TOTAL_DOMAINS') ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' % of traffic = Ads: '> ) } ) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET') ($ Id.VSub_DollarName '$PIHOLE_PERCENT_ADS'))} ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') (braced_var_sub token: <Id.VSub_Name aCOLOUR> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$USER_COLOUR_INDEX')} ) ) ($ Id.VSub_DollarName '$C_REVERSE') <' Last domain blocked: '> ) } ) (C {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$C_RESET') <' '> ($ Id.VSub_DollarName '$PIHOLE_LAST_DOMAIN_BLOCKED') ) } ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILEPATH_SETTINGS) op: assign_op.Equal rhs: {(DQ <'/DietPi/dietpi/.dietpi-cloudshell'>)} spids: [7712] ) ] ) (command.ShFunction name: Read_Settings_File body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$FILEPATH_SETTINGS'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<.>} {(DQ ($ Id.VSub_DollarName '$FILEPATH_SETTINGS'))})] spids: [7726 7739] ) ] ) ] ) ) (command.ShFunction name: Write_Settings_File 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: 7806 stdin_parts: [ <'REFRESH_RATE='> ($ Id.VSub_DollarName '$REFRESH_RATE') <'\n'> <'USER_COLOUR_INDEX='> ($ Id.VSub_DollarName '$USER_COLOUR_INDEX') <'\n'> <'TEMPERATURE_OUTPUT_TYPE='> ($ Id.VSub_DollarName '$TEMPERATURE_OUTPUT_TYPE') <'\n'> <'OUTPUT_DISPLAY_INDEX='> ($ Id.VSub_DollarName '$OUTPUT_DISPLAY_INDEX') <'\n'> <'\n'> <'NETWORK_USAGE_CURRENT_OUTPUT_TYPE='> ($ Id.VSub_DollarName '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE') <'\n'> <'\n'> <'BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED='> ($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED') <'\n'> <'BLANK_SCREEN_TIME_HOUR_START='> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START') <'\n'> <'BLANK_SCREEN_TIME_HOUR_END='> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END') <'\n'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FILEPATH_SETTINGS'))} ) ] 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: {($ Id.VSub_DollarName '$MAX_SCENES')} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <'aEnabledScenes['> ($ Id.VSub_DollarName '$i') <']='> (braced_var_sub token: <Id.VSub_Name aEnabledScenes> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$FILEPATH_SETTINGS')} ) ] 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: {($ Id.VSub_DollarName '$MAX_STORAGE')} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ <'STORAGE_PATH['> ($ Id.VSub_DollarName '$i') <']=\''> (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) <'\''> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$FILEPATH_SETTINGS')} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <'STORAGE_NAME['> ($ Id.VSub_DollarName '$i') <']=\''> (braced_var_sub token: <Id.VSub_Name STORAGE_NAME> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) <'\''> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$FILEPATH_SETTINGS')} ) ] do_fork: T ) ] ) ) ] ) ) (command.ShFunction name: Init body: (BraceGroup children: [ (C {<Init_STORAGE>}) (C {<Read_Settings_File>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$G_HW_MODEL')} right: {<Id.Lit_Digits 20>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name:aEnabledScenes index:{<Id.Lit_Digits 0>}) op: assign_op.Equal rhs: {<0>} spids: [8010] ) ] ) ] spids: [7993 8007] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<'/etc/pihole/gravity.list'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name:aEnabledScenes index:{<Id.Lit_Digits 8>}) op: assign_op.Equal rhs: {<0>} spids: [8051] ) ] ) ] spids: [8034 8047] ) ] ) (C {<local>} {<Id.Lit_VarLike 'enabled_scene='> <0>}) (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.VSub_DollarName '$MAX_SCENES')} ) 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: (command.DParen child: { (braced_var_sub token: <Id.VSub_Name aEnabledScenes> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:enabled_scene) op: assign_op.Equal rhs: {<1>} spids: [8118] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [8100 8115] ) ] ) ] ) ) (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 '$enabled_scene')} right: {<Id.Lit_Digits 0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name:aEnabledScenes index:{<Id.Lit_Digits 4>}) op: assign_op.Equal rhs: {<1>} spids: [8154] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCENE_CURRENT) op: assign_op.Equal rhs: {<4>} spids: [8162] ) ] ) ] spids: [8136 8150] ) ] ) (C {<'/DietPi/dietpi/func/obtain_network_details'>}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OUTPUT_DISPLAY_INDEX) op: assign_op.Equal rhs: {<0>} spids: [8202] ) ] ) (command.ShFunction name: Stop body: (BraceGroup children: [ (C {<systemctl>} {<stop>} {<dietpi-cloudshell>}) (command.Pipeline children: [ (C {<ps>} {<ax>}) (C {<grep>} {(SQ <'[d]ietpi-cloudshell [1-9]'>)}) (command.Simple words: [{<awk>} {(SQ <'{print $1}'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))} ) ] do_fork: T ) ] negated: F ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<-r>} {<line>})]) body: (command.DoGroup children: [ (command.Simple words: [{<kill>} {($ Id.VSub_DollarName '$line')}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$FP_TEMP')} ) ] ) ] ) ) (command.ShFunction name: Start body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'output_current_screen='> <0>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<tty>}) ) ) } {<Id.Lit_Equals '='>} {(DQ <'/dev/tty1'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output_current_screen) op: assign_op.Equal rhs: {<1>} spids: [8329] ) ] ) ] spids: [8307 8326] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$OUTPUT_DISPLAY_INDEX')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output_current_screen) op: assign_op.Equal rhs: {<1>} spids: [8350] ) ] ) ] spids: [8333 8347] ) ] ) (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 '$output_current_screen')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<clear>}) (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$C_RESET'))}) (C {<read>} {<-p>} { (DQ <'Use CTRL+C to exit. Press any key to launch '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <...> ) } ) ] spids: [8362 8376] ) ] ) (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 '$output_current_screen')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<'/DietPi/dietpi/dietpi-cloudshell'>} {<1>})] spids: [8410 8424] ) ] else_action: [(C {<systemctl>} {<start>} {<dietpi-cloudshell>})] ) (C {<sleep>} {<0.1>}) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE) op: assign_op.Equal rhs: {<0>} spids: [8476] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {<0>} spids: [8480] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {<0>} spids: [8484] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {<0>} spids: [8488] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [8492] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LASTSELECTED_ITEM) op: assign_op.Equal rhs: {(DQ )} spids: [8496] ) ] ) (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: {(DQ <'Exit '> ($ Id.VSub_DollarName '$PROGRAM_NAME'))} spids: [8509] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {(DQ <'Exit '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <' configuration tool?'>)} spids: [8516] ) ] ) (C {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yesno>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--yes-button>} {(DQ <Ok>)} {<--no-button>} {(DQ <Back>)} {<--defaultno>} {<9>} {<55>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [8563] ) ] ) (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 {<Write_Settings_File>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<-1>} spids: [8597] ) ] ) ] spids: [8567 8581] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [8610] ) ] ) ] ) ] ) ) (command.ShFunction name: Menu_Main body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [8634] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_BACKTITLE) op: assign_op.Equal rhs: { (DQ <'- '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <' v'> ($ Id.VSub_DollarName '$DIETPI_CLOUDSHELL_VERSION') <' -'> ) } spids: [8638] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(DQ <'- '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <' -'>)} spids: [8648] ) ] ) (C {<local>} {<Id.Lit_VarLike 'temp_output_text='> (DQ <Fahrenheit>)}) (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 '$TEMPERATURE_OUTPUT_TYPE')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:temp_output_text) op: assign_op.Equal rhs: {(DQ <Celsius>)} spids: [8682] ) ] ) ] spids: [8665 8679] ) ] ) (C {<local>} {<Id.Lit_VarLike 'target_output_text='> (DQ <'Main Screen (tty1)'>)}) (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 '$OUTPUT_DISPLAY_INDEX')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:target_output_text) op: assign_op.Equal rhs: {(DQ <'Current screen or terminal'>)} spids: [8717] ) ] ) ] spids: [8700 8714] ) ] ) (C {<local>} {<Id.Lit_VarLike 'bitbyte_output_text='> (DQ <'Bit (Kbit, Mbit, Gbit)'>)}) (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 '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bitbyte_output_text) op: assign_op.Equal rhs: {(DQ <'Byte (KB, MB, GB)'>)} spids: [8752] ) ] ) ] spids: [8735 8749] ) ] ) (C {<local>} {<Id.Lit_VarLike 'autoscreenoff='> (DQ <Disabled>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:autoscreenoff) op: assign_op.Equal rhs: {(DQ <Enabled>)} spids: [8783] ) ] ) ] spids: [8770 8780] ) ] ) (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'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--menu>} {(DQ )} {<--cancel-button>} {(DQ <Exit>)} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$LASTSELECTED_ITEM'))} {<17>} {<75>} {<10>} {(DQ <Colour>)} {(DQ <'Setting: Change the colour scheme.'>)} {(DQ <'Update Rate'>)} {(DQ <'Setting: Control the time between screen updates.'>)} {(DQ <Scenes>)} {(DQ <'Setting: Toggle which scenes are shown.'>)} {(DQ <Storage>)} {(DQ <'Setting: Set mount locations used for storage stats'>)} {(DQ <Temperature>)} {(DQ <'Setting: Output = '> ($ Id.VSub_DollarName '$temp_output_text'))} {(DQ <'Net Usage Current'>)} { (DQ <'Setting: Output = '> ($ Id.VSub_DollarName '$bitbyte_output_text') ) } {(DQ <'Output Display'>)} {(DQ <'Setting: '> ($ Id.VSub_DollarName '$target_output_text') <.>)} {(DQ <'Auto screen off'>)} { (DQ <'Setting: '> ($ Id.VSub_DollarName '$autoscreenoff') <' | Start '> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START') <' h | End '> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END') <' h'> ) } {(DQ <'Start / Restart'>)} { (DQ <'Apply settings. Launch on '> ($ Id.VSub_DollarName '$target_output_text') <.> ) } {(DQ <Stop>)} {(DQ <'Stops '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <.>)} ] 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: [8793] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [8958] ) ] ) (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:LASTSELECTED_ITEM) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$OPTION'))} spids: [8980] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ <Storage>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<5>} spids: [9003] ) ] ) ] spids: [8997 9000 9007 -1] ) (case_arm pat_list: [{(DQ <'Auto screen off'>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [9016] ) ] ) ] spids: [9010 9013 9020 -1] ) (case_arm pat_list: [{(DQ <'Net Usage Current'>)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike NETWORK_USAGE_CURRENT_OUTPUT_TYPE> ) ) (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 '$NETWORK_USAGE_CURRENT_OUTPUT_TYPE' ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: NETWORK_USAGE_CURRENT_OUTPUT_TYPE ) op: assign_op.Equal rhs: {<0>} spids: [9053] ) ] ) ] spids: [9036 9050] ) ] ) ] spids: [9023 9026 9060 -1] ) (case_arm pat_list: [{<Temperature>}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike TEMPERATURE_OUTPUT_TYPE> ) ) (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 '$TEMPERATURE_OUTPUT_TYPE' ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TEMPERATURE_OUTPUT_TYPE) op: assign_op.Equal rhs: {<0>} spids: [9091] ) ] ) ] spids: [9074 9088] ) ] ) ] spids: [9063 9064 9098 -1] ) (case_arm pat_list: [{(DQ <'Output Display'>)}] action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike OUTPUT_DISPLAY_INDEX> ) ) (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 '$OUTPUT_DISPLAY_INDEX')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OUTPUT_DISPLAY_INDEX) op: assign_op.Equal rhs: {<0>} spids: [9131] ) ] ) ] spids: [9114 9128] ) ] ) ] spids: [9101 9104 9138 -1] ) (case_arm pat_list: [{(DQ <'Start / Restart'>)}] action: [(C {<Write_Settings_File>}) (C {<Stop>}) (C {<Start>})] spids: [9141 9144 9156 -1] ) (case_arm pat_list: [{(DQ <Stop>)}] action: [(C {<Stop>})] spids: [9159 9162 9168 -1] ) (case_arm pat_list: [{<Colour>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<1>} spids: [9175] ) ] ) ] spids: [9171 9172 9179 -1] ) (case_arm pat_list: [{(DQ <'Update Rate'>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<2>} spids: [9188] ) ] ) ] spids: [9182 9185 9192 -1] ) (case_arm pat_list: [{<Scenes>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<3>} spids: [9199] ) ] ) ] spids: [9195 9196 9203 -1] ) ] ) ] spids: [8962 8976] ) ] else_action: [(C {<Menu_Exit>})] ) ] ) ) (command.ShFunction name: Menu_Colour body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [9238] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'- Options : Colour -'>)} spids: [9275] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <'Select your colour scheme.'>)} spids: [9281] ) ] ) (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'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--menu>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--cancel-button>} {(DQ <Back>)} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$USER_COLOUR_INDEX'))} {<15>} {<45>} {<7>} {(DQ <0>)} {(DQ <White>)} {(DQ <1>)} {(DQ <Red>)} {(DQ <2>)} {(DQ <Green>)} {(DQ <3>)} {(DQ <'Yellow (Default)'>)} {(DQ <4>)} {(DQ <Blue>)} {(DQ <5>)} {(DQ <Purple>)} {(DQ <6>)} {(DQ <Cyan>)} ] 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: [9287] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9409] ) ] ) (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:USER_COLOUR_INDEX) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [9431] ) ] ) ] spids: [9413 9427] ) ] ) ] ) ) (command.ShFunction name: Menu_UpdateRate body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [9459] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'- Options : Update Rate -'>)} spids: [9464] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <'Change the delay between scene changes and updates.'>)} spids: [9470] ) ] ) (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'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--menu>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--cancel-button>} {(DQ <Back>)} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$REFRESH_RATE'))} {<15>} {<55>} {<7>} {(DQ <1>)} {(DQ <Second>)} {(DQ <3>)} {(DQ <Seconds>)} {(DQ <5>)} {(DQ <'Seconds (Default)'>)} {(DQ <10>)} {(DQ <Seconds>)} {(DQ <15>)} {(DQ <Seconds>)} {(DQ <20>)} {(DQ <Seconds>)} {(DQ <30>)} {(DQ <Seconds>)} {(DQ <45>)} {(DQ <Seconds>)} {(DQ <60>)} {(DQ <Seconds>)} ] 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: [9476] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [9618] ) ] ) (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:REFRESH_RATE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [9640] ) ] ) ] spids: [9622 9636] ) ] ) ] ) ) (command.ShFunction name: Menu_SceneSelection body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [9668] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_TEMP) op: assign_op.Equal rhs: {(DQ <'/tmp/.dietpi-cloudshell_scenelist'>)} spids: [9673] ) ] ) (C {<local>} {<Id.Lit_VarLike 'aWhiptailArray='> (sh_array_literal left:<Id.Op_LParen _>)}) (C {<local>} {<Id.Lit_VarLike 'aWhip_OnOff_Status='> (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: {($ Id.VSub_DollarName '$MAX_SCENES')} ) 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.IndexedName name: aWhip_OnOff_Status index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <on>)} spids: [9724] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (braced_var_sub token: <Id.VSub_Name aEnabledScenes> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aWhip_OnOff_Status index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {(SQ <off>)} spids: [9755] ) ] ) ] spids: [9734 9751] ) ] ) ] ) ) (C {<local>} {<Id.Lit_VarLike 'index='> <0>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<0>} spids: [9784] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'CPU: Temperatures, Usage, frequency and more.'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9787] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<1>} spids: [9808] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'Storage: Usage information for Flash and USB drives'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9811] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<2>} spids: [9832] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <' - Additional Storage (USB_2/3)'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9835] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<3>} spids: [9856] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <' - Additional Storage (USB_4/5)'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9859] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<4>} spids: [9880] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'DietPi: Information, stats and updates for DietPi.'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9883] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<5>} spids: [9904] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'Network Details: Ip address, Speeds, Signal and more.'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9907] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<6>} spids: [9928] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'Network Usage: Bandwidth usage (sent / recieved).'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9931] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<7>} spids: [9952] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'Memory: Stats for RAM and Swapfile usage.'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9955] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:index) op: assign_op.Equal rhs: {<8>} spids: [9976] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$index'))} {(DQ <'Pi-hole: Stats for Pi-hole. Total Ads blocked etc.'>)} { (DQ (braced_var_sub token: <Id.VSub_Name aWhip_OnOff_Status> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$index')} ) ) ) } ] ) } spids: [9979] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'- Options : Scene Selection -'>)} spids: [10001] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: {(SQ <'Please use the spacebar to toggle which scenes are active.'>)} spids: [10007] ) ] ) (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--checklist>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_TITLE'))} {<--separate-output>} {<16>} {<75>} {<9>} { (DQ (braced_var_sub token: <Id.VSub_Name aWhiptailArray> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10057] ) ] ) (C {<unset>} {<aWhiptailArray>}) (C {<unset>} {<aWhip_OnOff_Status>}) (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: {($ Id.VSub_DollarName '$MAX_SCENES')} ) 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.IndexedName name: aEnabledScenes index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: {<0>} spids: [10121] ) ] ) ] ) ) ] spids: [10081 10095] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<-r>} {<line>})]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aEnabledScenes index: {($ Id.VSub_DollarName '$line')} ) op: assign_op.Equal rhs: {<1>} spids: [10155] ) ] ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))} ) ] ) ] ) ) (command.ShFunction name: Menu_BlankScreenAtTime body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [10193] ) ] ) (C {<local>} {<Id.Lit_VarLike 'aWhipHour='> (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: {<Id.Lit_Digits 24>} ) 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:aWhipHour) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ ($ Id.VSub_DollarName '$i'))} {(DQ <Hour>)}] ) } spids: [10231] ) ] ) ] ) ) (C {<local>} {<Id.Lit_VarLike 'blank_screen_at_specific_time_enabled_text='> (SQ <Disabled>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED')} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:blank_screen_at_specific_time_enabled_text) op: assign_op.Equal rhs: {(SQ <Enabled>)} spids: [10269] ) ] ) ] spids: [10256 10266] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'- Options : Auto screen off -'>)} spids: [10279] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'Automatically power down the screen and disable DietPi-Cloudshell processing during a specific time.\\n\\nNB: This feature will only work if DietPi-Cloudshell was launched with the DietPi-Autostart option, or, launched from the main screen (tty1).' > ) } spids: [10285] ) ] ) (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'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<--menu>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--cancel-button>} {(DQ <Back>)} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$REFRESH_RATE'))} {<16>} {<60>} {<3>} {(DQ <Toggle>)} { (DQ ($ Id.VSub_DollarName '$blank_screen_at_specific_time_enabled_text') ) } {(DQ <'Start time'>)} { (DQ <'Set which hour to power off screen ('> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START') <').'> ) } {(DQ <'End time'>)} { (DQ <'Set which hour to power on screen ('> ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END') <').'> ) } ] 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: [10291] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10377] ) ] ) (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 <Toggle>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED> ) ) (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 '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED' ) } right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED ) op: assign_op.Equal rhs: {<0>} spids: [10443] ) ] ) ] spids: [10426 10440] ) ] ) ] spids: [10399 10415] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'Start time'>)} {<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: { (SQ < 'Please select which hour (24h) you would like the screen to power off.' > ) } spids: [10471] ) ] ) (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'))} {<--default-item>} { (DQ ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_START' ) ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<55>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name aWhipHour> 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: [10477] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10531] ) ] ) (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:BLANK_SCREEN_TIME_HOUR_START) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [10552] ) ] ) ] spids: [10535 10549] ) ] ) ] spids: [10451 10467] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.Lit_Equals '='>} {(DQ <'End time'>)} {<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: { (SQ < 'Please select which hour (24h) you would like the screen to power on.' > ) } spids: [10580] ) ] ) (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'))} {<--default-item>} { (DQ ($ Id.VSub_DollarName '$BLANK_SCREEN_TIME_HOUR_END') ) } {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$WHIP_BACKTITLE'))} {<16>} {<55>} {<7>} { (DQ (braced_var_sub token: <Id.VSub_Name aWhipHour> 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: [10586] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10640] ) ] ) (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:BLANK_SCREEN_TIME_HOUR_END) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTION')} spids: [10661] ) ] ) ] spids: [10644 10658] ) ] ) ] spids: [10560 10576] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<4>} spids: [10673] ) ] ) ] spids: [10381 10395] ) ] ) (C {<unset>} {<aWhipHour>}) ] ) ) (command.ShFunction name: Menu_Storage body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [10707] ) ] ) (C {<local>} {<Id.Lit_VarLike 'aWhiptailArray='> (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 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$MAX_STORAGE')} ) 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:aWhiptailArray) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ ($ Id.VSub_DollarName '$i'))} { (DQ <': Drive '> ($ Id.VSub_DollarName '$i') <' | '> (braced_var_sub token: <Id.VSub_Name STORAGE_PATH> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } ] ) } spids: [10747] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'- Options : Storage Device Mount Location -'>)} spids: [10772] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHIP_QUESTION) op: assign_op.Equal rhs: { (SQ < 'DietPi-Cloudshell pulls the storage stats from the drive mount location. If you have custom drives/mounts, please set them here to be displayed during storage scene updates.\\n\\n - Drive 1 = Displayed during main storage scene\\n - Drive 2/3 = Displayed during additional storage scene\\n - Drive 4/5 = Displayed during additional storage scene' > ) } spids: [10778] ) ] ) (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'))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$PROGRAM_NAME'))} {<--menu>} {(DQ ($ Id.VSub_DollarName '$WHIP_QUESTION'))} {<--cancel-button>} {(DQ <Back>)} {<19>} {<75>} {<5>} { (DQ (braced_var_sub token: <Id.VSub_Name aWhiptailArray> 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: [10784] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [10839] ) ] ) (C {<unset>} {<aWhiptailArray>}) (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 {<local>} {<Id.Lit_VarLike 'index='> ($ Id.VSub_DollarName '$OPTION')}) (C {<'/DietPi/dietpi/dietpi-drive_manager'>} {<1>}) (C {<local>} {<Id.Lit_VarLike 'return_string='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {<'/tmp/dietpi-drive_manager_selmnt'>}) ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$return_string'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: STORAGE_PATH index: {($ Id.VSub_DollarName '$index')} ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$return_string'))} spids: [10909] ) ] ) ] spids: [10892 10905] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<5>} spids: [10924] ) ] ) ] spids: [10850 10864] ) ] ) ] ) ) (C {<Init>}) (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.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$TARGETMENUID')} right: {<Id.Lit_Digits 0>} ) ) 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: [11013 11027] ) (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_Colour>})] spids: [11033 11047] ) (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_UpdateRate>})] spids: [11053 11067] ) (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_SceneSelection>})] spids: [11073 11087] ) (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_BlankScreenAtTime>})] spids: [11093 11107] ) (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_Storage>})] spids: [11113 11127] ) ] ) ] ) ) ] spids: [10969 10983] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName '$INPUT')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Enable_Term_Options>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child:{($ Id.VSub_DollarName '$RUN_INTRO')}) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Run_Intro>})] spids: [11175 11185] ) ] ) (command.Simple words: [{<renice>} {<-n>} {<10>} {($ Id.VSub_Dollar '$$')}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<true>})]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { ($ Id.VSub_DollarName '$BLANK_SCREEN_AT_SPECIFIC_TIME_ENABLED' ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<RUN_BLANK_SCREEN_AT_SPECIFIC_TIME>})] spids: [11226 11236] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName '$BLANK_SCREEN_ACTIVE')} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sleep>} {<60>})] spids: [11252 11262] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (braced_var_sub token: <Id.VSub_Name aEnabledScenes> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$SCENE_CURRENT')} ) ) } ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Update_Banner>}) (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 '$SCENE_CURRENT')} right: {<Id.Lit_Digits 1>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Update_Scene_1>} {<0>} {<1>})] spids: [11307 11321] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$SCENE_CURRENT')} right: {<Id.Lit_Digits 2>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Update_Scene_1>} {<2>} {<3>})] spids: [11337 11351] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName '$SCENE_CURRENT')} right: {<Id.Lit_Digits 3>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<Update_Scene_1>} {<4>} {<5>})] spids: [11367 11381] ) ] else_action: [ (C {<Update_Scene_> ($ Id.VSub_DollarName '$SCENE_CURRENT')}) ] ) (C {<sleep>} {($ Id.VSub_DollarName '$REFRESH_RATE')}) ] spids: [11280 11295] ) ] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike SCENE_CURRENT> ) ) (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 '$SCENE_CURRENT')} right: {($ Id.VSub_DollarName '$MAX_SCENES')} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCENE_CURRENT) op: assign_op.Equal rhs: {<0>} spids: [11457] ) ] ) ] spids: [11440 11454] ) ] ) ] ) ] ) ) ] spids: [11149 11163] ) ] ) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName '$FP_TEMP'))}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (C {<unset>} {<aCOLOUR>}) (C {<unset>} {<aEnabledScenes>}) (C {<Destroy_STORAGE>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] )