(command.BraceGroup children: [ (C {<.>} {</DietPi/dietpi/func/dietpi-globals>}) (C {<G_CHECK_ROOT_USER>}) (C {<G_CHECK_ROOTFS_RW>}) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Launcher>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PROGRAM_NAME) op: assign_op.Equal rhs: {(DQ <DietPi-Launcher>)} spids: [99] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {<0>} spids: [106] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: {<0>} spids: [110] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<0>} spids: [114] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LAST_SELECTED_ITEM) op: assign_op.Equal rhs: {(DQ <dietpi-config>)} spids: [118] ) ] ) (command.ShFunction name: Menu_Main body: (command.BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'option_name='> (sh_array_literal left:<Id.Op_LParen _>)}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ )} { (DQ < '\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Install Optimized Software\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > ) } ] ) } spids: [144] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Software>)} {(DQ <'Install optimized software thats ready to run.'>)} ] ) } spids: [161] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ )} { (DQ < '\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Configuration\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > ) } ] ) } spids: [179] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Config>)} {(DQ <'Feature rich config tool for your device.'>)} ] ) } spids: [196] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithWord w: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)}) ] negated: F ) ] ) ) } ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-JustBoom>)} {(DQ <'Launches EQ and MPD audio options menu'>)} ] ) } spids: [245] ) ] ) ] spids: [215 241] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-AutoStart>)} {(DQ <'Choose what software runs after boot.'>)} ] ) } spids: [262] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {</DietPi/dietpi/.installed>} {<Id.Lit_RBracket ']'>} ) (command.DParen child: (arith_expr.ArithWord w: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<cat>} {</DietPi/dietpi/.installed>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'aSOFTWARE_INSTALL_STATE\\[62\\]=2'>)} ) ] negated: F ) ] ) ) } ) ) ] ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-CloudShell>)} {(DQ <'Adjust update rate, scenes settings and more.'>)} ] ) } spids: [325] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) ] spids: [285 321] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <DietPi-Cron>)} {(DQ <'Modify the start times of cron jobs.'>)}] ) } spids: [348] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Process_Tool>)} {(DQ <'Tweak Nice, Affinity, Schedulers for programs.'>)} ] ) } spids: [366] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Drive_Manager>)} {(DQ <'Setup and control multiple external drives.'>)} ] ) } spids: [384] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ )} { (DQ < '\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80DietPi Updates\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > ) } ] ) } spids: [402] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <DietPi-Update>)} {(DQ <'Keep your DietPi system upto date.'>)}] ) } spids: [419] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ )} { (DQ < '\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Backups / Sync\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > ) } ] ) } spids: [437] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Backup>)} {(DQ <'Backup and restore your DietPi system.'>)} ] ) } spids: [454] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Sync>)} {(DQ <'Duplicate (Sync) one directory to another.'>)} ] ) } spids: [472] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ )} { (DQ < '\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Maintenance\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > ) } ] ) } spids: [490] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-Cleaner>)} {(DQ <'Remove unwanted junk from your system.'>)} ] ) } spids: [507] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ )} { (DQ < '\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80Misc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > ) } ] ) } spids: [525] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(DQ <DietPi-BugReport>)} {(DQ <'Found a bug? Let us know!'>)}] ) } spids: [542] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-CpuInfo>)} {(DQ <'Displays CPU Temp, frequencies, type etc.'>)} ] ) } spids: [560] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-LetsEncrypt>)} {(DQ <'Frontend for Lets Encrypt, free SSL certs'>)} ] ) } spids: [578] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:option_name) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(DQ <DietPi-MorseCode>)} {(DQ <'Converts and outputs a text file to morsecode.'>)} ] ) } spids: [596] ) ] ) terminator: <Id.Op_Semi _> ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:index) ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName '$PROGRAM_NAME'))} {<--menu>} {(DQ <'Please select a program to run:'>)} {<--cancel-button>} {(DQ <Exit>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$PROGRAM_NAME'))} {<--default-item>} {(DQ ($ Id.VSub_DollarName '$LAST_SELECTED_ITEM'))} {<18>} {<76>} {<10>} { (DQ (braced_var_sub token: <Id.VSub_Name option_name> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] redirects: [ (redir.Redir op: <Id.Redir_GreatAnd '3>&'> fd: 3 arg_word: {<1>} ) (redir.Redir op: <Id.Redir_GreatAnd '1>&'> fd: 1 arg_word: {<2>} ) (redir.Redir op: <Id.Redir_GreatAnd '2>&'> fd: 2 arg_word: {<3>} ) ] ) ] ) ) } spids: [616] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [676] ) ] ) (C {<unset>} {<option_name>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$OPTION'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LAST_SELECTED_ITEM) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$OPTION'))} spids: [730] ) ] ) (C {<local>} {<Id.Lit_VarLike 'command='> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<echo>} { (DQ (braced_var_sub token: <Id.VSub_Name OPTION> suffix_op: (suffix_op.Unary op_id:Id.VOp1_DComma arg_word:(word.Empty)) ) ) } ) ] ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ </DietPi/dietpi/> ($ Id.VSub_DollarName '$command'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {</DietPi/dietpi/> (DQ ($ Id.VSub_DollarName '$command'))}) ] spids: [761 775] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} { (DQ </DietPi/dietpi/misc/> ($ Id.VSub_DollarName '$command') ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {</DietPi/dietpi/misc/> (DQ ($ Id.VSub_DollarName '$command'))}) ] spids: [790 804] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} { (DQ </DietPi/dietpi/func/> ($ Id.VSub_DollarName '$command') ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (C {</DietPi/dietpi/func/> (DQ ($ Id.VSub_DollarName '$command'))}) ] spids: [819 833] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$command'))} {<Id.Lit_Equals '='>} {(DQ <dietpi-cpuinfo>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$command'))} {<Id.Lit_Equals '='>} {(DQ <dietpi-update>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$command'))} {<Id.Lit_Equals '='>} {(DQ <dietpi-morsecode>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {<-e>} {(DQ )}) (C {<read>} {<-p>} {(DQ <' - Press any key to exit....'>)}) ] spids: [852 903] ) ] ) ] spids: [709 726] ) ] ) ] spids: [691 705] ) ] else_action: [ (C {<whiptail>} {<--title>} {(DQ <'Exit '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <'?'>)} {<--yesno>} {(DQ <'Exit '> ($ Id.VSub_DollarName '$PROGRAM_NAME') <'?'>)} {<--backtitle>} {(DQ ($ Id.VSub_DollarName '$PROGRAM_NAME'))} {<--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: [984] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$CHOICE')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGETMENUID) op: assign_op.Equal rhs: {<-1>} spids: [1006] ) ] ) ] spids: [988 1002] ) ] ) ] ) ] ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TARGETMENUID')}) right: (arith_expr.Unary op_id: Id.Node_UnaryMinus child: (arith_expr.ArithWord w:{<Id.Lit_Digits 1>}) ) ) ) terminator: <Id.Op_Semi _> ) ] body: (command.DoGroup children: [ (C {<clear>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$TARGETMENUID')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [(C {<Menu_Main>})] spids: [1067 1081] ) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] )