(CommandList children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <' '> <Lit_EscapedChar '\\t'> <Lit_EscapedChar '\\r'>)} spids: [36] ) (assign_pair lhs: (LhsName name:VERSION) op: Equal rhs: {(5.1.2-bashcached)} spids: [43] ) ] spids: [36] ) terminator: <Op_Semi ';'> ) (C {(export)} {(Lit_VarLike 'LANG=') (C)}) (C {(trap)} {(SQ <'exit 0'>)} {(INT)} {(TERM)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr:(WordTest w:{(DQ ($ VSub_Name '$SOCAT_VERSION'))})) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:send) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-u)})]) left_token: <Left_CommandSub '$('> spids: [79 83] ) ) } spids: [77] ) ] spids: [77] ) terminator: <Op_Semi ';'> ) (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name '$send'))}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:recv) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-u)})]) left_token: <Left_CommandSub '$('> spids: [100 104] ) ) } spids: [98] ) ] spids: [98] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name '$recv'))}) terminator: <Op_Semi ';'> ) (Sentence child: (While cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_p child:{(DQ ($ VSub_Name '$recv'))}) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Sentence child: (SimpleCommand words: [{(cat)} {(DQ ($ VSub_Name '$recv'))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [140] ) ] ) terminator: <Op_Semi ';'> ) ] spids: [132 144] ) ) terminator: <Op_Amp '&'> ) (Sentence child: (C {(trap)} {(SQ <'rm -f "$recv" "$send"'>)} {(EXIT)}) terminator: <Op_Semi ';'> ) (While cond: [(Sentence child:(C {(read)} {(-ra)} {(cmd)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Sentence child: (Case to_match: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [171 176] ) } arms: [ (case_arm pat_list: [{(set)} {(add)} {(replace)} {(append)} {(prepend)} {(cas)}] action: [ (Sentence child: (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (AndOr children: [ (SimpleCommand words: [ {(printf)} {(SQ <'recv=%q send=%q cmd=%q\\n'>)} {(DQ ($ VSub_Name '$recv'))} {(DQ ($ VSub_Name '$send'))} { (DQ (BracedVarSub token: <VSub_Name cmd> bracket_op: (WholeArray op_id:Arith_Star) spids: [217 222] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$BASHCACHED_PIPE'))} spids: [225] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [230] ) ] ) (ControlFlow token: <ControlFlow_Break break> ) ] op_id: Op_DAmp ) ] spids: [200 238] ) ) terminator: <Op_Semi ';'> ) (SimpleCommand words: [ {(head)} {(-c)} { (DQ (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)})) suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(0)}) spids: [246 253] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$send'))} spids: [256] ) ] ) ] spids: [181 192 260 -1] ) (case_arm pat_list: [{(quit)}] action: [(C {(exit)})] spids: [263 264 267 -1] ) (case_arm pat_list: [{(SQ )}] spids: [-1 271 273 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Sentence child: (AndOr children: [ (SimpleCommand words: [ {(printf)} {(SQ <'recv=%q send=%q cmd=%q\\n'>)} {(DQ ($ VSub_Name '$recv'))} {(DQ ($ VSub_Name '$send'))} { (DQ (BracedVarSub token: <VSub_Name cmd> bracket_op: (WholeArray op_id:Arith_Star) spids: [301 306] ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$BASHCACHED_PIPE'))} spids: [309] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [314] ) ] ) (ControlFlow token: <ControlFlow_Break break> ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [283 322] ) ) ] spids: [275 276 323 -1] ) ] spids: [169 178 326] ) terminator: <Op_Semi ';'> ) ] spids: [167 329] ) ) ] spids: [-1 74] ) ] else_action: [ (Sentence child: (FuncDef name: help body: (BraceGroup children: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(tail)} {(-n) (Lit_Other '+') (2)}] redirects: [ (Redir op_id: Redir_Less fd: -1 arg_word: {(DQ ($ VSub_Number '$0'))} spids: [346] ) ] ) (C {(head)} {(-n11)}) (C {(cut)} {(-c3-)}) ] negated: False ) terminator: <Op_Semi ';'> ) (Sentence child:(C {(exit)}) terminator:<Op_Semi ';'>) ] spids: [338] ) spids: [334 337] ) terminator: <Op_Semi ';'> ) (FuncDef name: version body: (BraceGroup children: [ (Sentence child: (C {(echo)} {($ VSub_Name '$VERSION')}) terminator: <Op_Semi ';'> ) (Sentence child:(C {(exit)}) terminator:<Op_Semi ';'>) ] spids: [374] ) spids: [370 373] ) (FuncDef name: license body: (BraceGroup children: [ (Sentence child: (C {(curl)} { (SQ < 'https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.MIT.md' > ) } ) terminator: <Op_Semi ';'> ) (Sentence child:(C {(echo)}) terminator:<Op_Semi ';'>) (Sentence child: (C {(curl)} { (SQ < 'https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.%F0%9F%8D%A3.md' > ) } ) terminator: <Op_Semi ';'> ) (Sentence child:(C {(exit)}) terminator:<Op_Semi ';'>) ] spids: [391] ) spids: [387 390] ) (ForEach iter_name: v iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$v')} right: {(--) (Lit_Other '*')} ) ) (C {(eval)} { (DQ (BracedVarSub token: <VSub_Name v> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [446 450] ) ) } ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [428 454] ) spids: [422 426] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs:(LhsName name:unique) op:Equal rhs:{(1)} spids:[462]) (assign_pair lhs: (LhsName name:before) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(printf)} {(SQ <'%(%s)T'>)} {(-1)})]) left_token: <Left_CommandSub '$('> spids: [466 474] ) } spids: [465] ) ] spids: [462] ) (Assignment keyword: Assign_Declare flags: ["'-A'"] pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(ArrayLiteralPart)} spids: [481] ) (assign_pair lhs: (LhsName name:exptime) op: Equal rhs: {(ArrayLiteralPart)} spids: [485] ) (assign_pair lhs: (LhsName name:casUnique) op: Equal rhs: {(ArrayLiteralPart)} spids: [489] ) (assign_pair lhs: (LhsName name:data) op: Equal rhs: {(ArrayLiteralPart)} spids: [493] ) ] spids: [477] ) (FuncDef name: cache_has body: (BraceGroup children: [ (Sentence child: (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: { (BracedVarSub token: <VSub_Name exptime> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Number '$1')})) spids: [510 515] ) } spids: [509] ) ] spids: [509] ) (DBracket expr: (LogicalAnd left: (WordTest w:{($ VSub_Name '$t')}) right: (LogicalOr left: (BoolBinary op_id: BoolBinary_eq left: {($ VSub_Name '$t')} right: {(0)} ) right: (BoolBinary op_id: BoolBinary_gt left: {($ VSub_Name '$t')} right: {($ VSub_Name '$time')} ) ) ) ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [507] ) spids: [503 506] ) (FuncDef name: cache_update body: (BraceGroup children: [ (Sentence child: (C {(data) (Lit_Other '[') ($ VSub_Number '$1') (Lit_Other ']') (Lit_Other '=') ($ VSub_Number '$2') } ) terminator: <Op_Semi ';'> ) (Sentence child: (AndOr children: [ (DBracket expr:(WordTest w:{($ VSub_Number '$3')})) (AndOr children: [ (C {(casUnique) (Lit_Other '[') ($ VSub_Number '$1') (Lit_Other ']') (Lit_Other '=') (DQ ($ VSub_Number '$3')) } ) (C {(casUnique) (Lit_Other '[') ($ VSub_Number '$1') (Lit_Other ']') (Lit_Other '=') (ArithSubPart anode:(UnaryAssign op_id:Node_PostDPlus child:(LhsName name:unique)) spids:[587591]) } ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [553] ) spids: [549 552] ) (FuncDef name: cache_set body: (BraceGroup children: [ (Sentence child: (C {(flags) (Lit_Other '[') ($ VSub_Number '$1') (Lit_Other ']') (Lit_Other '=') ($ VSub_Number '$2') } {(exptime) (Lit_Other '[') ($ VSub_Number '$1') (Lit_Other ']') (Lit_Other '=') (ArithSubPart anode: (TernaryOp cond: (ArithBinary op_id: Arith_DAmp left: (ArithBinary op_id: Arith_Less left: (ArithWord w:{(Lit_Digits 0)}) right: (ArithWord w:{($ VSub_Number '$3')}) ) right: (ArithBinary op_id: Arith_LessEqual left: (ArithWord w:{($ VSub_Number '$3')}) right: (ArithWord w:{(Lit_Digits 2592000)}) ) ) true_expr: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Number '$3')}) right: (ArithVarRef name:time) ) false_expr: (ArithWord w:{($ VSub_Number '$3')}) ) spids: [615 642] ) } ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(cache_update)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$4'))} {(DQ ($ VSub_Number '$5'))} ) terminator: <Op_Semi ';'> ) ] spids: [601] ) spids: [597 600] ) (FuncDef name: cache_get body: (BraceGroup children: [ (Sentence child: (AndOr children: [ (C {(cache_has)} {(DQ ($ VSub_Number '$1'))}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:d) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Number '$1')}) ) spids: [679 684] ) ) } spids: [677] ) ] spids: [677] ) (AndOr children: [ (C {(printf)} { (SQ <'VALUE %s %s %s%s'> <Lit_EscapedChar '\\r'> <Lit_EscapedChar '\\n'> ) } {(DQ ($ VSub_Number '$1'))} { (DQ (BracedVarSub token: <VSub_Name flags> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Number '$1')}) ) spids: [704 709] ) ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$d'))}) (C {(base64)} {(-d)}) (C {(wc)} {(-c)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [713 733] ) ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (DBracket expr: (WordTest w:{($ VSub_Number '$2')}) ) (C {(echo)} { (DQ (' ') (BracedVarSub token: <VSub_Name casUnique> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Number '$1')} ) ) spids: [750 755] ) ) } ) ] op_id: Op_DAmp ) ] ) left_token: <Left_CommandSub '$('> spids: [737 757] ) ) } ) (AndOr children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$d'))}) (C {(base64)} {(-d)}) ] negated: False ) (C {(echo)} {(-e)} {(SQ <'\\r'>)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [667] ) spids: [663 666] ) (FuncDef name: cache_delete body: (BraceGroup children: [ (Sentence child: (C {(unset)} {(DQ ('flags[') ($ VSub_Number '$1') (']'))} {(DQ ('exptime[') ($ VSub_Number '$1') (']'))} {(DQ ('casUnique[') ($ VSub_Number '$1') (']'))} {(DQ ('data[') ($ VSub_Number '$1') (']'))} ) terminator: <Op_Semi ';'> ) ] spids: [795] ) spids: [791 794] ) (FuncDef name: read_data body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:d) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(head)} {(-c)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Name '$send'))} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [840 856] ) ) } spids: [838] ) ] spids: [838] ) terminator: <Op_Semi ';'> ) ] spids: [836] ) spids: [832 835] ) (FuncDef name: base64_cat body: (BraceGroup children: [ (Sentence child: (Pipeline children: [ (C {(cat)} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Number '$1'))}) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_ProcSubIn '<('> spids: [871 885] ) } { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Number '$2'))}) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_ProcSubIn '<('> spids: [887 901] ) } ) (C {(base64)}) ] negated: False ) terminator: <Op_Semi ';'> ) ] spids: [867] ) spids: [863 866] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASHCACHED_PIPE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(mktemp)} {(-u)})]) left_token: <Left_CommandSub '$('> spids: [914 918] ) ) } spids: [912] ) ] spids: [912] ) terminator: <Op_Semi ';'> ) (Sentence child:(C {(export)} {(BASHCACHED_PIPE)}) terminator:<Op_Semi ';'>) (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ VSub_Name '$BASHCACHED_PIPE'))}) (C {(trap)} {(SQ <'rm -f "$BASHCACHED_PIPE"'>)} {(EXIT)}) (Sentence child: (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_NEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name check> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)}) spids: [949 953] ) } ) right: (ArithWord w:{(Lit_Digits 0)}) ) ) (While cond: [(Sentence child:(C {(echo)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Sentence child: (C {(sleep)} { (DQ (BracedVarSub token: <VSub_Name check> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)}) spids: [974 978] ) ) } ) terminator: <Op_Semi ';'> ) ] spids: [969 982] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$BASHCACHED_PIPE'))} spids: [984] ) ] ) ] op_id: Op_DAmp ) terminator: <Op_Amp '&'> ) (Sentence child: (Pipeline children: [ (While cond: [(Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Sentence child: (C {(cat)} {(DQ ($ VSub_Name '$BASHCACHED_PIPE'))}) terminator: <Op_Semi ';'> ) ] spids: [998 1007] ) ) (While cond: [(Sentence child:(C {(read)} {(-r)} {(line)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(SQ )} spids: [1023] ) (assign_pair lhs: (LhsName name:recv) op: Equal rhs: {(SQ )} spids: [1027] ) (assign_pair lhs: (LhsName name:send) op: Equal rhs: {(SQ )} spids: [1031] ) ] spids: [1023] ) terminator: <Op_Semi ';'> ) (Sentence child: (C {(eval)} {(DQ ($ VSub_Name '$line'))}) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_Name '$cmd')}])} spids: [1041] ) (assign_pair lhs: (LhsName name:time) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(printf)} {(SQ <'%(%s)T'>)} {(-1)})] ) left_token: <Left_CommandSub '$('> spids: [1047 1055] ) } spids: [1046] ) ] spids: [1041] ) (AndOr children: [ (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:time) right: (ArithVarRef name:before) ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name check> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(60)}) spids: [1068 1072] ) } ) ) ) (AndOr children: [ (ForEach iter_name: k iter_words: [ { (DQ (BracedVarSub token: <VSub_Name exptime> prefix_op: VSub_Bang bracket_op: (WholeArray op_id:Lit_At) spids: [1086 1092] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (AndOr children: [ (Pipeline children: [(C {(cache_has)} {($ VSub_Name '$k')})] negated: True ) (C {(cache_delete)} {($ VSub_Name '$k')}) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [1096 1112] ) spids: [1084 1094] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:before) op: Equal rhs: {($ VSub_Name '$time')} spids: [1116] ) ] spids: [1116] ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_p child:{($ VSub_Name '$recv')}) ) ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) (Sentence child: (Case to_match: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1137 1142] ) } arms: [ (case_arm pat_list: [{(set)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1152 1157] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1168 1173] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [1175 1180] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)})) spids: [1182 1187] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1196 1201] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ (STORED) (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1219] ) ] ) ] op_id: Op_DAmp ) ] spids: [1147 1148 1223 -1] ) (case_arm pat_list: [{(add)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1231 1236] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (AndOr children: [ (Pipeline children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1249 1254] ) } ) ] negated: True ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1260 1265] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1267 1272] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1274 1279] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1288] ) ] spids: [1288] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1293] ) ] spids: [1293] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1299 1304] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1322] ) ] ) ] op_id: Op_DAmp ) ] spids: [1226 1227 1326 -1] ) (case_arm pat_list: [{(replace)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1334 1339] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1350 1355] ) } ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1361 1366] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1368 1373] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1375 1380] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1389] ) ] spids: [1389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1394] ) ] spids: [1394] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1400 1405] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1423] ) ] ) ] op_id: Op_DAmp ) ] spids: [1329 1330 1427 -1] ) (case_arm pat_list: [{(append)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1435 1440] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1451 1456] ) } ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1462 1467] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(base64_cat)} { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [1479 1484] ) } ) ) spids: [1476 1486] ) ) } {(DQ ($ VSub_Name '$d'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1472 1492] ) ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1497] ) ] spids: [1497] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1502] ) ] spids: [1502] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1508 1513] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1531] ) ] ) ] op_id: Op_DAmp ) ] spids: [1430 1431 1535 -1] ) (case_arm pat_list: [{(prepend)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1543 1548] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1559 1564] ) } ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1570 1575] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(base64_cat)} {(DQ ($ VSub_Name '$d'))} { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [1591 1596] ) } ) ) spids: [1588 1598] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1580 1600] ) ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1605] ) ] spids: [1605] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_STORED)} spids: [1610] ) ] spids: [1610] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1616 1621] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1639] ) ] ) ] op_id: Op_DAmp ) ] spids: [1538 1539 1643 -1] ) (case_arm pat_list: [{(cas)}] action: [ (Sentence child: (AndOr children: [ (C {(read_data)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1651 1656] ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] op_id: Op_DPipe ) terminator: <Op_Semi ';'> ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1671 1676] ) } ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [1681] ) ] spids: [1681] ) ] spids: [-1 1679] ) ] else_action: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: { (BracedVarSub token: <VSub_Name casUnique> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [1692 1697] ) } ) ) spids: [1689 1699] ) } right: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 5)}) ) spids: [1703 1708] ) } ) ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1716 1721] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1723 1728] ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1730 1735] ) } {(DQ ($ VSub_Name '$d'))} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(STORED)} spids: [1744] ) ] spids: [1744] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(EXISTS)} spids: [1749] ) ] spids: [1749] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) terminator: <Op_Semi ';'> ) ] spids: [1685 1753] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 6)}) ) spids: [1758 1763] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1781] ) ] ) ] op_id: Op_DAmp ) ] spids: [1646 1647 1785 -1] ) (case_arm pat_list: [{(get)}] action: [ (Subshell child: (CommandList children: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1804 1810] ) } ) ) update: (UnaryAssign op_id: Node_PostDPlus child: (LhsName name:i) ) body: (DoGroup children: [ (Sentence child: (C {(cache_get)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name '$i')} ) ) spids: [1823 1828] ) } ) terminator: <Op_Semi ';'> ) ] spids: [1819 1831] ) ) (C {(echo)} {(-e)} {(SQ <'END\\r'>)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1842] ) ] spids: [1791 1841] ) ] spids: [1788 1789 1846 -1] ) (case_arm pat_list: [{(gets)}] action: [ (Subshell child: (CommandList children: [ (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 1)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1865 1871] ) } ) ) update: (UnaryAssign op_id: Node_PostDPlus child: (LhsName name:i) ) body: (DoGroup children: [ (Sentence child: (C {(cache_get)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name '$i')} ) ) spids: [1884 1889] ) } {(1)} ) terminator: <Op_Semi ';'> ) ] spids: [1880 1894] ) ) (C {(echo)} {(-e)} {(SQ <'END\\r'>)}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1905] ) ] spids: [1852 1904] ) ] spids: [1849 1850 1909 -1] ) (case_arm pat_list: [{(delete)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1917 1922] ) } ) (AndOr children: [ (C {(cache_delete)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1928 1933] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(DELETED)} spids: [1938] ) ] spids: [1938] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [1943] ) ] spids: [1943] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1949 1954] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [1972] ) ] ) ] op_id: Op_DAmp ) ] spids: [1912 1913 1976 -1] ) (case_arm pat_list: [{(incr)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1984 1989] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} { (DQ (BracedVarSub token: < VSub_Name data > bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: < VSub_Name cmd > bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [ 2004 2009 ] ) } ) ) spids: [ 2001 2011 ] ) ) } ) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1995 2019] ) } ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 2)} ) ) suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(0)} ) spids: [2023 2030] ) } ) ) spids: [1994 2032] ) } spids: [1993] ) ] spids: [1993] ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2039 2044] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {($ VSub_Name '$result')} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2047 2057] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2062] ) ] spids: [2062] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [2068 2073] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2091] ) ] ) ] op_id: Op_DAmp ) ] spids: [1979 1980 2095 -1] ) (case_arm pat_list: [{(decr)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2103 2108] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} { (DQ (BracedVarSub token: < VSub_Name data > bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: < VSub_Name cmd > bracket_op: (ArrayIndex expr: (ArithWord w: { ( Lit_Digits 1 ) } ) ) spids: [ 2123 2128 ] ) } ) ) spids: [ 2120 2130 ] ) ) } ) (C {(base64)} {(-d)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2114 2138] ) } ) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 2)} ) ) suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(0)} ) spids: [2142 2149] ) } ) ) spids: [2113 2151] ) } spids: [2112] ) ] spids: [2112] ) (AndOr children: [ (C {(cache_update)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2158 2163] ) } { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} {($ VSub_Name '$result')} ) (C {(base64)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [2166 2176] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2181] ) ] spids: [2181] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [2187 2192] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2210] ) ] ) ] op_id: Op_DAmp ) ] spids: [2098 2099 2214 -1] ) (case_arm pat_list: [{(touch)}] action: [ (AndOr children: [ (C {(cache_has)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2222 2227] ) } ) (AndOr children: [ (C {(cache_set)} { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2234 2239] ) } { (DQ (BracedVarSub token: <VSub_Name flags> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [2245 2250] ) } ) ) spids: [2242 2252] ) ) } { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 2)}) ) spids: [2255 2260] ) } { (DQ (BracedVarSub token: <VSub_Name data> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [2266 2271] ) } ) ) spids: [2263 2273] ) ) } { (BracedVarSub token: <VSub_Name casUnique> bracket_op: (ArrayIndex expr: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) spids: [2279 2284] ) } ) ) spids: [2276 2286] ) } ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(TOUCHED)} spids: [2291] ) ] spids: [2291] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {(NOT_FOUND)} spids: [2296] ) ] spids: [2296] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 3)}) ) spids: [2302 2307] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$result') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2325] ) ] ) ] op_id: Op_DAmp ) ] spids: [2217 2218 2329 -1] ) (case_arm pat_list: [{(flush_all)}] action: [ (ForEach iter_name: k iter_words: [ { (DQ (BracedVarSub token: <VSub_Name exptime> prefix_op: VSub_Bang bracket_op: (WholeArray op_id:Lit_At) spids: [2342 2348] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (C {(exptime) (Lit_Other '[') ($ VSub_Name '$k') (Lit_Other ']') (Lit_Other '=') (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:time) right: (ArithWord w: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 1)} ) ) suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(0)} ) spids: [2364 2371] ) } ) ) spids: [2359 2373] ) } ) terminator: <Op_Semi ';'> ) ] spids: [2352 2376] ) spids: [2340 2350] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (BracedVarSub token: <VSub_Name cmd> bracket_op: (ArrayIndex expr: (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [2381 2387] ) } right: {(noreply)} ) ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ (OK) (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2405] ) ] ) ] op_id: Op_DAmp ) ] spids: [2332 2333 2409 -1] ) (case_arm pat_list: [{(version)}] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ('VERSION ') ($ VSub_Name '$VERSION') (EscapedLiteralPart token: <Lit_EscapedChar '\\r'> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$recv'))} spids: [2424] ) ] ) terminator: <Op_Amp '&'> ) ] spids: [2412 2413 2430 -1] ) ] spids: [1135 1144 2433] ) terminator: <Op_Semi ';'> ) ] spids: [1020 2436] ) ) ] negated: False ) terminator: <Op_Amp '&'> ) (C {(socat)} { (DQ (BracedVarSub token: <VSub_Name protocol> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(tcp)}) spids: [2444 2448] ) ('-listen:') (BracedVarSub token: <VSub_Name port> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(25252)}) spids: [2450 2454] ) (',reuseaddr,fork') ) } {(system) (Lit_Other ':') (DQ ($ VSub_Number '$0'))} ) ] spids: [331 2464] ) ] )