(BraceGroup children: [ (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)}) (C {(G_CHECK_ROOT_USER)}) (C {(G_CHECK_ROOTFS_RW)}) (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Launcher>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROGRAM_NAME) op: Equal rhs: {(DQ (DietPi-Launcher))} spids: [99] ) ] spids: [99] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[106])] spids: [106] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTION) op:Equal rhs:{(0)} spids:[110])] spids: [110] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[114])] spids: [114] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LAST_SELECTED_ITEM) op: Equal rhs: {(DQ (dietpi-config))} spids: [118] ) ] spids: [118] ) (FuncDef name: Menu_Main body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:option_name) op: Equal rhs: {(ArrayLiteralPart)} spids: [138] ) ] spids: [136] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart 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] ) ] spids: [144] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [154 158] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Software))} {(DQ ('Install optimized software thats ready to run.'))} ] ) } spids: [161] ) ] spids: [161] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [172 176] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart 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] ) ] spids: [179] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [189 193] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Config))} {(DQ ('Feature rich config tool for your device.'))} ] ) } spids: [196] ) ] spids: [196] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [207 211] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(dpkg)} {(--get-selections)}) (C {(grep)} {(-ci)} {(-m1)} {(SQ <'^alsa-utils'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [219 235] ) } ) spids: [217 238] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-JustBoom))} {(DQ ('Launches EQ and MPD audio options menu'))} ] ) } spids: [245] ) ] spids: [245] ) ] spids: [16777215 241] ) ] spids: [16777215 258] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-AutoStart))} {(DQ ('Choose what software runs after boot.'))} ] ) } spids: [262] ) ] spids: [262] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [273 277] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-f)} {(/DietPi/dietpi/.installed)} {(Lit_Other ']')}) (DParen child: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/DietPi/dietpi/.installed)}) (C {(grep)} {(-ci)} {(-m1)} {(SQ <'aSOFTWARE_INSTALL_STATE\\[62\\]=2'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [299 315] ) } ) spids: [297 318] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-CloudShell))} {(DQ ('Adjust update rate, scenes settings and more.'))} ] ) } spids: [325] ) ] spids: [325] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [336 340] ) ] spids: [16777215 321] ) ] spids: [16777215 344] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [{(DQ (DietPi-Cron))} {(DQ ('Modify the start times of cron jobs.'))}] ) } spids: [348] ) ] spids: [348] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [359 363] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Process_Tool))} {(DQ ('Tweak Nice, Affinity, Schedulers for programs.'))} ] ) } spids: [366] ) ] spids: [366] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [377 381] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Drive_Manager))} {(DQ ('Setup and control multiple external drives.'))} ] ) } spids: [384] ) ] spids: [384] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [395 399] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart 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] ) ] spids: [402] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [412 416] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [{(DQ (DietPi-Update))} {(DQ ('Keep your DietPi system upto date.'))}] ) } spids: [419] ) ] spids: [419] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [430 434] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart 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] ) ] spids: [437] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [447 451] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Backup))} {(DQ ('Backup and restore your DietPi system.'))} ] ) } spids: [454] ) ] spids: [454] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [465 469] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Sync))} {(DQ ('Duplicate (Sync) one directory to another.'))} ] ) } spids: [472] ) ] spids: [472] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [483 487] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart 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] ) ] spids: [490] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [500 504] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-Cleaner))} {(DQ ('Remove unwanted junk from your system.'))} ] ) } spids: [507] ) ] spids: [507] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [518 522] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart 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] ) ] spids: [525] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [535 539] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [{(DQ (DietPi-BugReport))} {(DQ ('Found a bug? Let us know!'))}] ) } spids: [542] ) ] spids: [542] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [553 557] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-CpuInfo))} {(DQ ('Displays CPU Temp, frequencies, type etc.'))} ] ) } spids: [560] ) ] spids: [560] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [571 575] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-LetsEncrypt))} {(DQ ('Frontend for Lets Encrypt, free SSL certs'))} ] ) } spids: [578] ) ] spids: [578] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [589 593] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:option_name) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ (DietPi-MorseCode))} {(DQ ('Converts and outputs a text file to morsecode.'))} ] ) } spids: [596] ) ] spids: [596] ) terminator: <Op_Semi ';'> ) (DParen child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:index)) spids: [607 611] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(--menu)} {(DQ ('Please select a program to run:'))} {(--cancel-button)} {(DQ (Exit))} {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(--default-item)} {(DQ ($ VSub_Name '$LAST_SELECTED_ITEM'))} {(18)} {(76)} {(10)} { (DQ (BracedVarSub token: <VSub_Name option_name> bracket_op: (WholeArray op_id:Lit_At) spids: [657 662] ) ) } ] redirects: [ (Redir op: <Redir_GreatAnd '3>&'> fd: 3 arg_word: {(1)} ) (Redir op: <Redir_GreatAnd '1>&'> fd: 1 arg_word: {(2)} ) (Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(3)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [617 673] ) } spids: [616] ) ] spids: [616] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [676] ) ] spids: [676] ) (C {(unset)} {(option_name)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [693 702] ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$OPTION'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LAST_SELECTED_ITEM) op: Equal rhs: {(DQ ($ VSub_Name '$OPTION'))} spids: [730] ) ] spids: [730] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:command) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name OPTION> suffix_op: (StringUnary op_id:VOp1_DComma arg_word:{(EmptyPart)}) spids: [748 751] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [744 753] ) } spids: [743] ) ] spids: [741] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (/DietPi/dietpi/) ($ VSub_Name '$command'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(/DietPi/dietpi/) (DQ ($ VSub_Name '$command'))})] spids: [16777215 775] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (/DietPi/dietpi/misc/) ($ VSub_Name '$command'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(/DietPi/dietpi/misc/) (DQ ($ VSub_Name '$command'))})] spids: [790 804] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (/DietPi/dietpi/func/) ($ VSub_Name '$command'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(/DietPi/dietpi/func/) (DQ ($ VSub_Name '$command'))})] spids: [819 833] ) ] spids: [16777215 844] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$command'))} {(Lit_Other '=')} {(DQ (dietpi-cpuinfo))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$command'))} {(Lit_Other '=')} {(DQ (dietpi-update))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$command'))} {(Lit_Other '=')} {(DQ (dietpi-morsecode))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} {(DQ )}) (C {(read)} {(-p)} {(DQ (' - Press any key to exit....'))}) ] spids: [16777215 903] ) ] spids: [16777215 925] ) ] spids: [16777215 726] ) ] spids: [16777215 929] ) ] spids: [16777215 705] ) ] else_action: [ (C {(whiptail)} {(--title)} {(DQ ('Exit ') ($ VSub_Name '$PROGRAM_NAME') ('?'))} {(--yesno)} {(DQ ('Exit ') ($ VSub_Name '$PROGRAM_NAME') ('?'))} {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(9)} {(55)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [984] ) ] spids: [984] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [990 999] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(-1)} spids: [1006] ) ] spids: [1006] ) ] spids: [16777215 1002] ) ] spids: [16777215 1011] ) ] spids: [937 1015] ) ] spids: [132] ) spids: [129 132] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) spids: [1042 1052] ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(clear)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [1069 1078] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Main)})] spids: [16777215 1081] ) ] spids: [16777215 1088] ) ] spids: [1055 1092] ) ) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [3] )