(command.CommandList
  children: [
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (single_quoted
                        left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:37)
                        tokens: [
                          (Token id:Id.Char_Literals val:' ' span_id:38)
                          (Token id:Id.Char_OneChar val:'\\t' span_id:39)
                          (Token id:Id.Char_OneChar val:'\\r' span_id:40)
                        ]
                      )
                    }
                  spids: [36]
                )
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:VERSION)
                  op: assign_op.Equal
                  rhs: {(5.1.2-bashcached)}
                  spids: [43]
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:45)
        )
        (C {(export)} {(Id.Lit_VarLike 'LANG=') (C)})
      ]
    )
    (C {(trap)} {(SQ (Token id:Id.Lit_Chars val:'exit 0' span_id:55))} {(INT)} {(TERM)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: (bool_expr.WordTest w:{(DQ ($ Id.VSub_DollarName '$SOCAT_VERSION'))})
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:72)
            )
          ]
          action: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:send)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:79)
                              command_list: (command.CommandList children:[(C {(mktemp)} {(-u)})])
                            )
                          )
                        }
                      spids: [77]
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:85)
            )
            (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ Id.VSub_DollarName '$send'))})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:recv)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ 
                            (command_sub
                              left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:100)
                              command_list: (command.CommandList children:[(C {(mktemp)} {(-u)})])
                            )
                          )
                        }
                      spids: [98]
                    )
                  ]
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:106)
            )
            (command.Sentence
              child: (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ Id.VSub_DollarName '$recv'))})
              terminator: (Token id:Id.Op_Semi val:';' span_id:117)
            )
            (command.Sentence
              child: 
                (command.WhileUntil
                  keyword: (Token id:Id.KW_While val:while span_id:119)
                  cond: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_p
                              child: {(DQ ($ Id.VSub_DollarName '$recv'))}
                            )
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:130)
                    )
                  ]
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [{(cat)} {(DQ ($ Id.VSub_DollarName '$recv'))}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_Great val:'2>' span_id:140)
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:142)
                        )
                      ]
                    )
                )
              terminator: (Token id:Id.Op_Amp val:'&' span_id:146)
            )
            (command.Sentence
              child: 
                (C {(trap)} {(SQ (Token id:Id.Lit_Chars val:'rm -f "$recv" "$send"' span_id:152))} 
                  {(EXIT)}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:156)
            )
            (command.WhileUntil
              keyword: (Token id:Id.KW_While val:while span_id:158)
              cond: [
                (command.Sentence
                  child: (C {(read)} {(-ra)} {(cmd)})
                  terminator: (Token id:Id.Op_Semi val:';' span_id:165)
                )
              ]
              body: 
                (command.DoGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.Case
                          to_match: 
                            {
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:cmd span_id:172)
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                  )
                              )
                            }
                          arms: [
                            (case_arm
                              pat_list: [
                                {(Id.KW_Set set)}
                                {(add)}
                                {(replace)}
                                {(append)}
                                {(prepend)}
                                {(cas)}
                              ]
                              action: [
                                (command.Sentence
                                  child: 
                                    (command.WhileUntil
                                      keyword: (Token id:Id.KW_While val:while span_id:195)
                                      cond: [
                                        (command.Sentence
                                          child: (C {(true)})
                                          terminator: (Token id:Id.Op_Semi val:';' span_id:198)
                                        )
                                      ]
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {(printf)}
                                                    {
                                                      (SQ 
                                                        (Token
                                                          id: Id.Lit_Chars
                                                          val: 'recv=%q send=%q cmd=%q\\n'
                                                          span_id: 205
                                                        )
                                                      )
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$recv'))}
                                                    {(DQ ($ Id.VSub_DollarName '$send'))}
                                                    {
                                                      (DQ 
                                                        (braced_var_sub
                                                          token: 
                                                            (Token
                                                              id: Id.VSub_Name
                                                              val: cmd
                                                              span_id: 218
                                                            )
                                                          bracket_op: 
                                                            (bracket_op.WholeArray
                                                              op_id: Id.Arith_Star
                                                            )
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: 
                                                        (Token
                                                          id: Id.Redir_Great
                                                          val: '>'
                                                          span_id: 225
                                                        )
                                                      fd: -1
                                                      arg_word: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$BASHCACHED_PIPE')
                                                          )
                                                        }
                                                    )
                                                    (redir.Redir
                                                      op: 
                                                        (Token
                                                          id: Id.Redir_Great
                                                          val: '2>'
                                                          span_id: 230
                                                        )
                                                      fd: 2
                                                      arg_word: {(/dev/null)}
                                                    )
                                                  ]
                                                )
                                                (command.ControlFlow
                                                  token: 
                                                    (Token
                                                      id: Id.ControlFlow_Break
                                                      val: break
                                                      span_id: 235
                                                    )
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  terminator: (Token id:Id.Op_Semi val:';' span_id:239)
                                )
                                (command.Simple
                                  words: [
                                    {(head)}
                                    {(-c)}
                                    {
                                      (DQ 
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:cmd span_id:247)
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 4)})
                                            )
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_Hyphen
                                              arg_word: {(0)}
                                            )
                                        )
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: (Token id:Id.Redir_Great val:'>' span_id:256)
                                      fd: -1
                                      arg_word: {(DQ ($ Id.VSub_DollarName '$send'))}
                                    )
                                  ]
                                )
                              ]
                              spids: [181 192 260 -1]
                            )
                            (case_arm
                              pat_list: [{(quit)}]
                              action: [
                                (command.ControlFlow
                                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:266)
                                )
                              ]
                              spids: [263 264 267 -1]
                            )
                            (case_arm
                              pat_list: [{(SQ )}]
                              spids: [269 271 273 -1]
                            )
                            (case_arm
                              pat_list: [{(Id.Lit_Star '*')}]
                              action: [
                                (command.WhileUntil
                                  keyword: (Token id:Id.KW_While val:while span_id:278)
                                  cond: [
                                    (command.Sentence
                                      child: (C {(true)})
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:281)
                                    )
                                  ]
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {(printf)}
                                                    {
                                                      (SQ 
                                                        (Token
                                                          id: Id.Lit_Chars
                                                          val: 'recv=%q send=%q cmd=%q\\n'
                                                          span_id: 289
                                                        )
                                                      )
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$recv'))}
                                                    {(DQ ($ Id.VSub_DollarName '$send'))}
                                                    {
                                                      (DQ 
                                                        (braced_var_sub
                                                          token: 
                                                            (Token
                                                              id: Id.VSub_Name
                                                              val: cmd
                                                              span_id: 302
                                                            )
                                                          bracket_op: 
                                                            (bracket_op.WholeArray
                                                              op_id: Id.Arith_Star
                                                            )
                                                        )
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: 
                                                        (Token
                                                          id: Id.Redir_Great
                                                          val: '>'
                                                          span_id: 309
                                                        )
                                                      fd: -1
                                                      arg_word: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$BASHCACHED_PIPE')
                                                          )
                                                        }
                                                    )
                                                    (redir.Redir
                                                      op: 
                                                        (Token
                                                          id: Id.Redir_Great
                                                          val: '2>'
                                                          span_id: 314
                                                        )
                                                      fd: 2
                                                      arg_word: {(/dev/null)}
                                                    )
                                                  ]
                                                )
                                                (command.ControlFlow
                                                  token: 
                                                    (Token
                                                      id: Id.ControlFlow_Break
                                                      val: break
                                                      span_id: 319
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: (Token id:Id.Op_Semi val:';' span_id:320)
                                        )
                                      ]
                                    )
                                )
                              ]
                              spids: [275 276 323 -1]
                            )
                          ]
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:327)
                    )
                  ]
                )
            )
          ]
          spids: [63 74]
        )
      ]
      else_action: [
        (command.Sentence
          child: 
            (command.ShFunction
              name: help
              body: 
                (command.BraceGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [
                            (command.Simple
                              words: [{(tail)} {(-n) (Id.Lit_Other '+') (2)}]
                              redirects: [
                                (redir.Redir
                                  op: (Token id:Id.Redir_Less val:'<' span_id:346)
                                  fd: -1
                                  arg_word: {(DQ ($ Id.VSub_Number '$0'))}
                                )
                              ]
                            )
                            (C {(head)} {(-n11)})
                            (C {(cut)} {(-c3-)})
                          ]
                          negated: F
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:362)
                    )
                    (command.Sentence
                      child: 
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Exit val:exit span_id:364)
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:365)
                    )
                  ]
                )
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:368)
        )
        (command.ShFunction
          name: version
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: (C {(echo)} {($ Id.VSub_DollarName '$VERSION')})
                  terminator: (Token id:Id.Op_Semi val:';' span_id:379)
                )
                (command.Sentence
                  child: 
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:381)
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:382)
                )
              ]
            )
        )
        (command.ShFunction
          name: license
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (C {(curl)} 
                      {
                        (SQ 
                          (Token
                            id: Id.Lit_Chars
                            val: 
'https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.MIT.md'
                            span_id: 396
                          )
                        )
                      }
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:398)
                )
                (command.Sentence
                  child: (C {(echo)})
                  terminator: (Token id:Id.Op_Semi val:';' span_id:401)
                )
                (command.Sentence
                  child: 
                    (C {(curl)} 
                      {
                        (SQ 
                          (Token
                            id: Id.Lit_Chars
                            val: 
'https://raw.githubusercontent.com/MakeNowJust/bashcached/master/LICENSE.%F0%9F%8D%A3.md'
                            span_id: 407
                          )
                        )
                      }
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:409)
                )
                (command.Sentence
                  child: 
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:411)
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:412)
                )
              ]
            )
        )
        (command.ForEach
          iter_name: v
          iter_words: [{(DQ ($ Id.VSub_At '$@'))}]
          do_arg_iter: F
          body: 
            (command.DoGroup
              children: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {($ Id.VSub_DollarName '$v')}
                              right: {(--) (Id.Lit_Other '*')}
                            )
                        )
                        (C {(eval)} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:v span_id:447)
                                suffix_op: 
                                  (suffix_op.Slice
                                    begin: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                                  )
                              )
                            )
                          }
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:452)
                )
              ]
            )
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:unique)
              op: assign_op.Equal
              rhs: {(1)}
              spids: [462]
            )
            (assign_pair
              lhs: (sh_lhs_expr.Name name:before)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:466)
                    command_list: 
                      (command.CommandList
                        children: [
                          (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'%(%s)T' span_id:470))} {(-1)})
                        ]
                      )
                  )
                }
              spids: [465]
            )
          ]
        )
        (C {(declare)} {(-A)} 
          {(Id.Lit_VarLike 'flags=') 
            (sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:482))
          } {(Id.Lit_VarLike 'exptime=') (sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:486))} 
          {(Id.Lit_VarLike 'casUnique=') 
            (sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:490))
          } {(Id.Lit_VarLike 'data=') (sh_array_literal left:(Token id:Id.Op_LParen val:'(' span_id:494))}
        )
        (command.ShFunction
          name: cache_has
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:t)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:exptime span_id:511)
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                                      )
                                  )
                                }
                              spids: [509]
                            )
                          ]
                        )
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: (bool_expr.WordTest w:{($ Id.VSub_DollarName '$t')})
                              right: 
                                (bool_expr.LogicalOr
                                  left: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_eq
                                      left: {($ Id.VSub_DollarName '$t')}
                                      right: {(0)}
                                    )
                                  right: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_gt
                                      left: {($ Id.VSub_DollarName '$t')}
                                      right: {($ Id.VSub_DollarName '$time')}
                                    )
                                )
                            )
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:544)
                )
              ]
            )
        )
        (command.ShFunction
          name: cache_update
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: data
                              index: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$2')}
                          spids: [555]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:559)
                )
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.WordTest w:{($ Id.VSub_Number '$3')})
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  name: casUnique
                                  index: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                                )
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number '$3'))}
                              spids: [571]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  name: casUnique
                                  index: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                                )
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (word_part.ArithSub
                                    anode: 
                                      (arith_expr.UnaryAssign
                                        op_id: Id.Node_PostDPlus
                                        child: (sh_lhs_expr.Name name:unique)
                                      )
                                  )
                                }
                              spids: [582]
                            )
                          ]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:590)
                )
              ]
            )
        )
        (command.ShFunction
          name: cache_set
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: flags
                              index: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$2')}
                          spids: [603]
                        )
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              name: exptime
                              index: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.TernaryOp
                                    cond: 
                                      (arith_expr.Binary
                                        op_id: Id.Arith_DAmp
                                        left: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Less
                                            left: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                            right: (arith_expr.ArithWord w:{($ Id.VSub_Number '$3')})
                                          )
                                        right: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_LessEqual
                                            left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$3')})
                                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2592000)})
                                          )
                                      )
                                    true_expr: 
                                      (arith_expr.Binary
                                        op_id: Id.Arith_Plus
                                        left: (arith_expr.ArithWord w:{($ Id.VSub_Number '$3')})
                                        right: 
                                          (arith_expr.VarRef
                                            token: 
                                              (Token
                                                id: Id.Lit_ArithVarLike
                                                val: time
                                                span_id: 632
                                              )
                                          )
                                      )
                                    false_expr: (arith_expr.ArithWord w:{($ Id.VSub_Number '$3')})
                                  )
                              )
                            }
                          spids: [608]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:639)
                )
                (command.Sentence
                  child: 
                    (C {(cache_update)} {(DQ ($ Id.VSub_Number '$1'))} {(DQ ($ Id.VSub_Number '$4'))} 
                      {(DQ ($ Id.VSub_Number '$5'))}
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:658)
                )
              ]
            )
        )
        (command.ShFunction
          name: cache_get
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {(cache_has)} {(DQ ($ Id.VSub_Number '$1'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:d)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:data span_id:680)
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                                        )
                                    )
                                  )
                                }
                              spids: [677]
                            )
                          ]
                        )
                        (C {(printf)} 
                          {
                            (single_quoted
                              left: (Token id:Id.Left_SingleQuoteC val:"$'" span_id:691)
                              tokens: [
                                (Token
                                  id: Id.Char_Literals
                                  val: 'VALUE %s %s %s%s'
                                  span_id: 692
                                )
                                (Token
                                  id: Id.Char_OneChar
                                  val: '\\r'
                                  span_id: 693
                                )
                                (Token
                                  id: Id.Char_OneChar
                                  val: '\\n'
                                  span_id: 694
                                )
                              ]
                            )
                          } {(DQ ($ Id.VSub_Number '$1'))} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:flags span_id:705)
                                bracket_op: 
                                  (bracket_op.ArrayIndex
                                    expr: (arith_expr.ArithWord w:{($ Id.VSub_Number '$1')})
                                  )
                              )
                            )
                          } 
                          {
                            (DQ 
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:713)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Pipeline
                                        children: [
                                          (C {(echo)} {(-n)} {(DQ ($ Id.VSub_DollarName '$d'))})
                                          (C {(base64)} {(-d)})
                                          (C {(wc)} {(-c)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                              )
                            )
                          } 
                          {
                            (DQ 
                              (command_sub
                                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:737)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.AndOr
                                        ops: [Id.Op_DAmp]
                                        children: [
                                          (command.DBracket
                                            expr: (bool_expr.WordTest w:{($ Id.VSub_Number '$2')})
                                          )
                                          (C {(echo)} 
                                            {
                                              (DQ (' ') 
                                                (braced_var_sub
                                                  token: 
                                                    (Token
                                                      id: Id.VSub_Name
                                                      val: casUnique
                                                      span_id: 751
                                                    )
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {($ Id.VSub_Number '$1')}
                                                        )
                                                    )
                                                )
                                              )
                                            }
                                          )
                                        ]
                                      )
                                    ]
                                  )
                              )
                            )
                          }
                        )
                        (command.Pipeline
                          children: [
                            (C {(echo)} {(-n)} {(DQ ($ Id.VSub_DollarName '$d'))})
                            (C {(base64)} {(-d)})
                          ]
                          negated: F
                        )
                        (C {(echo)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'\\r' span_id:784))})
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:786)
                )
              ]
            )
        )
        (command.ShFunction
          name: cache_delete
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (C {(unset)} {(DQ ('flags[') ($ Id.VSub_Number '$1') (']'))} 
                      {(DQ ('exptime[') ($ Id.VSub_Number '$1') (']'))} {(DQ ('casUnique[') ($ Id.VSub_Number '$1') (']'))} {(DQ ('data[') ($ Id.VSub_Number '$1') (']'))}
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:822)
                )
              ]
            )
        )
        (command.ShFunction
          name: read_data
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:d)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:840)
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(head)} {(-c)} {(DQ ($ Id.VSub_Number '$1'))} 
                                              {(DQ ($ Id.VSub_DollarName '$send'))}
                                            )
                                            (C {(base64)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                )
                              )
                            }
                          spids: [838]
                        )
                      ]
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:858)
                )
              ]
            )
        )
        (command.ShFunction
          name: base64_cat
          body: 
            (command.BraceGroup
              children: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (C {(cat)} 
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_ProcSubIn val:'<(' span_id:871)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {(echo)} {(-n)} {(DQ ($ Id.VSub_Number '$1'))})
                                        (C {(base64)} {(-d)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          } 
                          {
                            (command_sub
                              left_token: (Token id:Id.Left_ProcSubIn val:'<(' span_id:887)
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (C {(echo)} {(-n)} {(DQ ($ Id.VSub_Number '$2'))})
                                        (C {(base64)} {(-d)})
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          }
                        )
                        (C {(base64)})
                      ]
                      negated: F
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:906)
                )
              ]
            )
        )
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BASHCACHED_PIPE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:914)
                          command_list: (command.CommandList children:[(C {(mktemp)} {(-u)})])
                        )
                      )
                    }
                  spids: [912]
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:920)
        )
        (command.Sentence
          child: (C {(export)} {(BASHCACHED_PIPE)})
          terminator: (Token id:Id.Op_Semi val:';' span_id:925)
        )
        (C {(mkfifo)} {(-m)} {(600)} {(DQ ($ Id.VSub_DollarName '$BASHCACHED_PIPE'))})
        (C {(trap)} {(SQ (Token id:Id.Lit_Chars val:'rm -f "$BASHCACHED_PIPE"' span_id:941))} {(EXIT)})
        (command.Sentence
          child: 
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Id.Arith_NEqual
                      left: 
                        (arith_expr.ArithWord
                          w: 
                            {
                              (braced_var_sub
                                token: (Token id:Id.VSub_Name val:check span_id:950)
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{(60)})
                              )
                            }
                        )
                      right: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                    )
                )
                (command.WhileUntil
                  keyword: (Token id:Id.KW_While val:while span_id:964)
                  cond: [
                    (command.Sentence
                      child: (C {(echo)})
                      terminator: (Token id:Id.Op_Semi val:';' span_id:967)
                    )
                  ]
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Sentence
                          child: 
                            (C {(sleep)} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:check span_id:975)
                                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{(60)})
                                  )
                                )
                              }
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:980)
                        )
                      ]
                    )
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:984)
                      fd: -1
                      arg_word: {(DQ ($ Id.VSub_DollarName '$BASHCACHED_PIPE'))}
                    )
                  ]
                )
              ]
            )
          terminator: (Token id:Id.Op_Amp val:'&' span_id:989)
        )
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.WhileUntil
                  keyword: (Token id:Id.KW_While val:while span_id:993)
                  cond: [
                    (command.Sentence
                      child: (C {(true)})
                      terminator: (Token id:Id.Op_Semi val:';' span_id:996)
                    )
                  ]
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Sentence
                          child: (C {(cat)} {(DQ ($ Id.VSub_DollarName '$BASHCACHED_PIPE'))})
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1005)
                        )
                      ]
                    )
                )
                (command.WhileUntil
                  keyword: (Token id:Id.KW_While val:while span_id:1011)
                  cond: [
                    (command.Sentence
                      child: (C {(read)} {(-r)} {(line)})
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1018)
                    )
                  ]
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cmd)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                  spids: [1023]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:recv)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                  spids: [1027]
                                )
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:send)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [1031]
                                )
                              ]
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1032)
                        )
                        (command.Sentence
                          child: (C {(eval)} {(DQ ($ Id.VSub_DollarName '$line'))})
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1039)
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:cmd)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (sh_array_literal
                                    left: (Token id:Id.Op_LParen val:'(' span_id:1042)
                                    words: [{($ Id.VSub_DollarName '$cmd')}]
                                  )
                                }
                              spids: [1041]
                            )
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:time)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1047)
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (C {(printf)} 
                                            {(SQ (Token id:Id.Lit_Chars val:'%(%s)T' span_id:1051))} {(-1)}
                                          )
                                        ]
                                      )
                                  )
                                }
                              spids: [1046]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp Id.Op_DAmp]
                          children: [
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_GreatEqual
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Minus
                                      left: 
                                        (arith_expr.VarRef
                                          token: (Token id:Id.Lit_ArithVarLike val:time span_id:1060)
                                        )
                                      right: 
                                        (arith_expr.VarRef
                                          token: 
                                            (Token
                                              id: Id.Lit_ArithVarLike
                                              val: before
                                              span_id: 1064
                                            )
                                        )
                                    )
                                  right: 
                                    (arith_expr.ArithWord
                                      w: 
                                        {
                                          (braced_var_sub
                                            token: (Token id:Id.VSub_Name val:check span_id:1069)
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op_id: Id.VTest_Hyphen
                                                arg_word: {(60)}
                                              )
                                          )
                                        }
                                    )
                                )
                            )
                            (command.ForEach
                              iter_name: k
                              iter_words: [
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: (Token id:Id.VSub_Name val:exptime span_id:1088)
                                      prefix_op: (Id.VSub_Bang)
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (command.Pipeline
                                              children: [
                                                (C {(cache_has)} {($ Id.VSub_DollarName '$k')})
                                              ]
                                              negated: T
                                            )
                                            (C {(cache_delete)} {($ Id.VSub_DollarName '$k')})
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1110)
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:before)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$time')}
                                  spids: [1116]
                                )
                              ]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_p
                                      child: {($ Id.VSub_DollarName '$recv')}
                                    )
                                )
                            )
                            (command.ControlFlow
                              token: (Token id:Id.ControlFlow_Continue val:continue span_id:1132)
                            )
                          ]
                        )
                        (command.Sentence
                          child: 
                            (command.Case
                              to_match: 
                                {
                                  (braced_var_sub
                                    token: (Token id:Id.VSub_Name val:cmd span_id:1138)
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 0)})
                                      )
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [{(Id.KW_Set set)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1153)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 4)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: 
                                                (Token
                                                  id: Id.ControlFlow_Return
                                                  val: return
                                                  span_id: 1161
                                                )
                                              arg_word: {(1)}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1164)
                                    )
                                    (C {(cache_set)} 
                                      {
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:cmd span_id:1169)
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                            )
                                        )
                                      } 
                                      {
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:cmd span_id:1176)
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                                            )
                                        )
                                      } 
                                      {
                                        (braced_var_sub
                                          token: (Token id:Id.VSub_Name val:cmd span_id:1183)
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 3)})
                                            )
                                        )
                                      } {(DQ ($ Id.VSub_DollarName '$d'))}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1197
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 5)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [{(echo)} {(-e)} {(DQ (STORED) (Id.Lit_Other '\\') (r))}]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1220)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1147 1148 1224 -1]
                                )
                                (case_arm
                                  pat_list: [{(add)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1233)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 4)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: 
                                                (Token
                                                  id: Id.ControlFlow_Return
                                                  val: return
                                                  span_id: 1241
                                                )
                                              arg_word: {(1)}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1244)
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (command.Pipeline
                                          children: [
                                            (C {(cache_has)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1251)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 1)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                          ]
                                          negated: T
                                        )
                                        (C {(cache_set)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1262)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1269)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                                                )
                                            )
                                          } 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1276)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 3)})
                                                )
                                            )
                                          } {(DQ ($ Id.VSub_DollarName '$d'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(STORED)}
                                              spids: [1289]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_STORED)}
                                              spids: [1294]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1301
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 5)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1324)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1227 1228 1328 -1]
                                )
                                (case_arm
                                  pat_list: [{(replace)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1337)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 4)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: 
                                                (Token
                                                  id: Id.ControlFlow_Return
                                                  val: return
                                                  span_id: 1345
                                                )
                                              arg_word: {(1)}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1348)
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1353)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (C {(cache_set)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1364)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1371)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                                                )
                                            )
                                          } 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1378)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 3)})
                                                )
                                            )
                                          } {(DQ ($ Id.VSub_DollarName '$d'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(STORED)}
                                              spids: [1391]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_STORED)}
                                              spids: [1396]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1403
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 5)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1426)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1331 1332 1430 -1]
                                )
                                (case_arm
                                  pat_list: [{(append)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1439)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 4)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: 
                                                (Token
                                                  id: Id.ControlFlow_Return
                                                  val: return
                                                  span_id: 1447
                                                )
                                              arg_word: {(1)}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1450)
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1455)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (C {(cache_update)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1466)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (DQ 
                                              (command_sub
                                                left_token: 
                                                  (Token
                                                    id: Id.Left_DollarParen
                                                    val: '$('
                                                    span_id: 1475
                                                  )
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (C {(base64_cat)} 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: data
                                                                  span_id: 1480
                                                                )
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: 
                                                                        {
                                                                          (braced_var_sub
                                                                            token: 
                                                                              (Token
                                                                                id: Id.VSub_Name
                                                                                val: cmd
                                                                                span_id: 1483
                                                                              )
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  (arith_expr.ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        (
Id.Lit_Digits 1
                                                                                        )
                                                                                      }
                                                                                  )
                                                                              )
                                                                          )
                                                                        }
                                                                    )
                                                                )
                                                            )
                                                          )
                                                        } {(DQ ($ Id.VSub_DollarName '$d'))}
                                                      )
                                                    ]
                                                  )
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(STORED)}
                                              spids: [1500]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_STORED)}
                                              spids: [1505]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1512
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 5)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1535)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1433 1434 1539 -1]
                                )
                                (case_arm
                                  pat_list: [{(prepend)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1548)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 4)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: 
                                                (Token
                                                  id: Id.ControlFlow_Return
                                                  val: return
                                                  span_id: 1556
                                                )
                                              arg_word: {(1)}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1559)
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1564)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (C {(cache_update)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1575)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (DQ 
                                              (command_sub
                                                left_token: 
                                                  (Token
                                                    id: Id.Left_DollarParen
                                                    val: '$('
                                                    span_id: 1584
                                                  )
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (C {(base64_cat)} 
                                                        {(DQ ($ Id.VSub_DollarName '$d'))} 
                                                        {
                                                          (DQ 
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: data
                                                                  span_id: 1593
                                                                )
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: 
                                                                        {
                                                                          (braced_var_sub
                                                                            token: 
                                                                              (Token
                                                                                id: Id.VSub_Name
                                                                                val: cmd
                                                                                span_id: 1596
                                                                              )
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  (arith_expr.ArithWord
                                                                                    w: 
                                                                                      {
                                                                                        (
Id.Lit_Digits 1
                                                                                        )
                                                                                      }
                                                                                  )
                                                                              )
                                                                          )
                                                                        }
                                                                    )
                                                                )
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                  )
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(STORED)}
                                              spids: [1609]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_STORED)}
                                              spids: [1614]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1621
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 5)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1644)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1542 1543 1648 -1]
                                )
                                (case_arm
                                  pat_list: [{(cas)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {(read_data)} 
                                              {
                                                (braced_var_sub
                                                  token: (Token id:Id.VSub_Name val:cmd span_id:1657)
                                                  bracket_op: 
                                                    (bracket_op.ArrayIndex
                                                      expr: 
                                                        (arith_expr.ArithWord
                                                          w: {(Id.Lit_Digits 4)}
                                                        )
                                                    )
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: 
                                                (Token
                                                  id: Id.ControlFlow_Return
                                                  val: return
                                                  span_id: 1665
                                                )
                                              arg_word: {(1)}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Semi val:';' span_id:1668)
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (C {(cache_has)} 
                                                      {
                                                        (braced_var_sub
                                                          token: 
                                                            (Token
                                                              id: Id.VSub_Name
                                                              val: cmd
                                                              span_id: 1677
                                                            )
                                                          bracket_op: 
                                                            (bracket_op.ArrayIndex
                                                              expr: 
                                                                (arith_expr.ArithWord
                                                                  w: {(Id.Lit_Digits 1)}
                                                                )
                                                            )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: (Token id:Id.Op_Semi val:';' span_id:1682)
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:result)
                                                  op: assign_op.Equal
                                                  rhs: {(NOT_FOUND)}
                                                  spids: [1686]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [1670 1684]
                                        )
                                      ]
                                      else_action: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                              children: [
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_eq
                                                      left: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              (Token
                                                                id: Id.VSub_Name
                                                                val: casUnique
                                                                span_id: 1695
                                                              )
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: 
                                                                      {
                                                                        (braced_var_sub
                                                                          token: 
                                                                            (Token
                                                                              id: Id.VSub_Name
                                                                              val: cmd
                                                                              span_id: 1698
                                                                            )
                                                                          bracket_op: 
                                                                            (bracket_op.ArrayIndex
                                                                              expr: 
                                                                                (arith_expr.ArithWord
                                                                                  w: 
                                                                                    {
                                                                                      (
Id.Lit_Digits 1
                                                                                      )
                                                                                    }
                                                                                )
                                                                            )
                                                                        )
                                                                      }
                                                                  )
                                                              )
                                                          )
                                                        }
                                                      right: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              (Token
                                                                id: Id.VSub_Name
                                                                val: cmd
                                                                span_id: 1709
                                                              )
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {(Id.Lit_Digits 5)}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                                (C {(cache_set)} 
                                                  {
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: cmd
                                                          span_id: 1722
                                                        )
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: 
                                                            (arith_expr.ArithWord
                                                              w: {(Id.Lit_Digits 1)}
                                                            )
                                                        )
                                                    )
                                                  } 
                                                  {
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: cmd
                                                          span_id: 1729
                                                        )
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: 
                                                            (arith_expr.ArithWord
                                                              w: {(Id.Lit_Digits 2)}
                                                            )
                                                        )
                                                    )
                                                  } 
                                                  {
                                                    (braced_var_sub
                                                      token: 
                                                        (Token
                                                          id: Id.VSub_Name
                                                          val: cmd
                                                          span_id: 1736
                                                        )
                                                      bracket_op: 
                                                        (bracket_op.ArrayIndex
                                                          expr: 
                                                            (arith_expr.ArithWord
                                                              w: {(Id.Lit_Digits 3)}
                                                            )
                                                        )
                                                    )
                                                  } {(DQ ($ Id.VSub_DollarName '$d'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:result)
                                                      op: assign_op.Equal
                                                      rhs: {(STORED)}
                                                      spids: [1749]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:result)
                                                      op: assign_op.Equal
                                                      rhs: {(EXISTS)}
                                                      spids: [1754]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          terminator: (Token id:Id.Op_Semi val:';' span_id:1756)
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1764
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 6)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1787)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1651 1652 1791 -1]
                                )
                                (case_arm
                                  pat_list: [{(get)}]
                                  action: [
                                    (command.Subshell
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.ForExpr
                                              init: 
                                                (arith_expr.BinaryAssign
                                                  op_id: Id.Arith_Equal
                                                  left: (sh_lhs_expr.Name name:i)
                                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                              cond: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Less
                                                  left: 
                                                    (arith_expr.VarRef
                                                      token: 
                                                        (Token
                                                          id: Id.Lit_ArithVarLike
                                                          val: i
                                                          span_id: 1806
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              (Token
                                                                id: Id.VSub_Name
                                                                val: cmd
                                                                span_id: 1812
                                                              )
                                                            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: (sh_lhs_expr.Name name:i)
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {(cache_get)} 
                                                          {
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: cmd
                                                                  span_id: 1830
                                                                )
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                            )
                                                          }
                                                        )
                                                      terminator: 
                                                        (Token
                                                          id: Id.Op_Semi
                                                          val: ';'
                                                          span_id: 1835
                                                        )
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {(echo)} {(-e)} 
                                              {(SQ (Token id:Id.Lit_Chars val:'END\\r' span_id:1845))}
                                            )
                                          ]
                                        )
                                      redirects: [
                                        (redir.Redir
                                          op: (Token id:Id.Redir_Great val:'>' span_id:1848)
                                          fd: -1
                                          arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1794 1795 1852 -1]
                                )
                                (case_arm
                                  pat_list: [{(gets)}]
                                  action: [
                                    (command.Subshell
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (command.ForExpr
                                              init: 
                                                (arith_expr.BinaryAssign
                                                  op_id: Id.Arith_Equal
                                                  left: (sh_lhs_expr.Name name:i)
                                                  right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                              cond: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_Less
                                                  left: 
                                                    (arith_expr.VarRef
                                                      token: 
                                                        (Token
                                                          id: Id.Lit_ArithVarLike
                                                          val: i
                                                          span_id: 1867
                                                        )
                                                    )
                                                  right: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              (Token
                                                                id: Id.VSub_Name
                                                                val: cmd
                                                                span_id: 1873
                                                              )
                                                            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: (sh_lhs_expr.Name name:i)
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {(cache_get)} 
                                                          {
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: cmd
                                                                  span_id: 1891
                                                                )
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                )
                                                            )
                                                          } {(1)}
                                                        )
                                                      terminator: 
                                                        (Token
                                                          id: Id.Op_Semi
                                                          val: ';'
                                                          span_id: 1898
                                                        )
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {(echo)} {(-e)} 
                                              {(SQ (Token id:Id.Lit_Chars val:'END\\r' span_id:1908))}
                                            )
                                          ]
                                        )
                                      redirects: [
                                        (redir.Redir
                                          op: (Token id:Id.Redir_Great val:'>' span_id:1911)
                                          fd: -1
                                          arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1855 1856 1915 -1]
                                )
                                (case_arm
                                  pat_list: [{(delete)}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1924)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (C {(cache_delete)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1935)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(DELETED)}
                                              spids: [1944]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_FOUND)}
                                              spids: [1949]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 1956
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 2)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:1979)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1918 1919 1983 -1]
                                )
                                (case_arm
                                  pat_list: [{(incr)}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:1992)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (word_part.ArithSub
                                                    anode: 
                                                      (arith_expr.Binary
                                                        op_id: Id.Arith_Plus
                                                        left: 
                                                          (arith_expr.ArithWord
                                                            w: 
                                                              {
                                                                (command_sub
                                                                  left_token: 
                                                                    (Token
                                                                      id: Id.Left_DollarParen
                                                                      val: '$('
                                                                      span_id: 2002
                                                                    )
                                                                  command_list: 
                                                                    (command.CommandList
                                                                      children: [
                                                                        (command.Pipeline
                                                                          children: [
                                                                            (C {(echo)} {(-n)} 
                                                                              {
                                                                                (DQ 
                                                                                  (braced_var_sub
                                                                                    token: 
                                                                                      (Token
                                                                                        id: 
Id.VSub_Name
                                                                                        val: data
                                                                                        span_id: 
2009
                                                                                      )
                                                                                    bracket_op: 
                                                                                      (bracket_op.ArrayIndex
                                                                                        expr: 
                                                                                          (arith_expr.ArithWord
                                                                                            w: 
                                                                                              {
                                                                                                (braced_var_sub
                                                                                                  token: 
                                                                                                    (Token
                                                                                                      id: 
Id.VSub_Name
                                                                                                      val: 
cmd
                                                                                                      span_id: 
2012
                                                                                                    )
                                                                                                  bracket_op: 
                                                                                                    (bracket_op.ArrayIndex
                                                                                                      expr: 
                                                                                                        (arith_expr.ArithWord
                                                                                                          w: 
                                                                                                            {
                                                                                                              (
Id.Lit_Digits 1
                                                                                                              )
                                                                                                            }
                                                                                                        )
                                                                                                    )
                                                                                                )
                                                                                              }
                                                                                          )
                                                                                      )
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {(base64)} {(-d)})
                                                                          ]
                                                                          negated: F
                                                                        )
                                                                      ]
                                                                    )
                                                                )
                                                              }
                                                          )
                                                        right: 
                                                          (arith_expr.ArithWord
                                                            w: 
                                                              {
                                                                (braced_var_sub
                                                                  token: 
                                                                    (Token
                                                                      id: Id.VSub_Name
                                                                      val: cmd
                                                                      span_id: 2031
                                                                    )
                                                                  bracket_op: 
                                                                    (bracket_op.ArrayIndex
                                                                      expr: 
                                                                        (arith_expr.ArithWord
                                                                          w: {(Id.Lit_Digits 2)}
                                                                        )
                                                                    )
                                                                  suffix_op: 
                                                                    (suffix_op.Unary
                                                                      op_id: Id.VTest_Hyphen
                                                                      arg_word: {(0)}
                                                                    )
                                                                )
                                                              }
                                                          )
                                                      )
                                                  )
                                                }
                                              spids: [2000]
                                            )
                                          ]
                                        )
                                        (C {(cache_update)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:2047)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (DQ 
                                              (command_sub
                                                left_token: 
                                                  (Token
                                                    id: Id.Left_DollarParen
                                                    val: '$('
                                                    span_id: 2054
                                                  )
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {(echo)} {(-n)} 
                                                            {($ Id.VSub_DollarName '$result')}
                                                          )
                                                          (C {(base64)})
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_FOUND)}
                                              spids: [2069]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 2076
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 3)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:2099)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1986 1987 2103 -1]
                                )
                                (case_arm
                                  pat_list: [{(decr)}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:2112)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (word_part.ArithSub
                                                    anode: 
                                                      (arith_expr.Binary
                                                        op_id: Id.Arith_Minus
                                                        left: 
                                                          (arith_expr.ArithWord
                                                            w: 
                                                              {
                                                                (command_sub
                                                                  left_token: 
                                                                    (Token
                                                                      id: Id.Left_DollarParen
                                                                      val: '$('
                                                                      span_id: 2122
                                                                    )
                                                                  command_list: 
                                                                    (command.CommandList
                                                                      children: [
                                                                        (command.Pipeline
                                                                          children: [
                                                                            (C {(echo)} {(-n)} 
                                                                              {
                                                                                (DQ 
                                                                                  (braced_var_sub
                                                                                    token: 
                                                                                      (Token
                                                                                        id: 
Id.VSub_Name
                                                                                        val: data
                                                                                        span_id: 
2129
                                                                                      )
                                                                                    bracket_op: 
                                                                                      (bracket_op.ArrayIndex
                                                                                        expr: 
                                                                                          (arith_expr.ArithWord
                                                                                            w: 
                                                                                              {
                                                                                                (braced_var_sub
                                                                                                  token: 
                                                                                                    (Token
                                                                                                      id: 
Id.VSub_Name
                                                                                                      val: 
cmd
                                                                                                      span_id: 
2132
                                                                                                    )
                                                                                                  bracket_op: 
                                                                                                    (bracket_op.ArrayIndex
                                                                                                      expr: 
                                                                                                        (arith_expr.ArithWord
                                                                                                          w: 
                                                                                                            {
                                                                                                              (
Id.Lit_Digits 1
                                                                                                              )
                                                                                                            }
                                                                                                        )
                                                                                                    )
                                                                                                )
                                                                                              }
                                                                                          )
                                                                                      )
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {(base64)} {(-d)})
                                                                          ]
                                                                          negated: F
                                                                        )
                                                                      ]
                                                                    )
                                                                )
                                                              }
                                                          )
                                                        right: 
                                                          (arith_expr.ArithWord
                                                            w: 
                                                              {
                                                                (braced_var_sub
                                                                  token: 
                                                                    (Token
                                                                      id: Id.VSub_Name
                                                                      val: cmd
                                                                      span_id: 2151
                                                                    )
                                                                  bracket_op: 
                                                                    (bracket_op.ArrayIndex
                                                                      expr: 
                                                                        (arith_expr.ArithWord
                                                                          w: {(Id.Lit_Digits 2)}
                                                                        )
                                                                    )
                                                                  suffix_op: 
                                                                    (suffix_op.Unary
                                                                      op_id: Id.VTest_Hyphen
                                                                      arg_word: {(0)}
                                                                    )
                                                                )
                                                              }
                                                          )
                                                      )
                                                  )
                                                }
                                              spids: [2120]
                                            )
                                          ]
                                        )
                                        (C {(cache_update)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:2167)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (DQ 
                                              (command_sub
                                                left_token: 
                                                  (Token
                                                    id: Id.Left_DollarParen
                                                    val: '$('
                                                    span_id: 2174
                                                  )
                                                command_list: 
                                                  (command.CommandList
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (C {(echo)} {(-n)} 
                                                            {($ Id.VSub_DollarName '$result')}
                                                          )
                                                          (C {(base64)})
                                                        ]
                                                        negated: F
                                                      )
                                                    ]
                                                  )
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_FOUND)}
                                              spids: [2189]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 2196
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 3)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:2219)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [2106 2107 2223 -1]
                                )
                                (case_arm
                                  pat_list: [{(touch)}]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DPipe]
                                      children: [
                                        (C {(cache_has)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:2232)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          }
                                        )
                                        (C {(cache_set)} 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:2244)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)})
                                                )
                                            )
                                          } 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: (Token id:Id.VSub_Name val:flags span_id:2252)
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: 
                                                          {
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: cmd
                                                                  span_id: 2255
                                                                )
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {(Id.Lit_Digits 1)}
                                                                    )
                                                                )
                                                            )
                                                          }
                                                      )
                                                  )
                                              )
                                            )
                                          } 
                                          {
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:cmd span_id:2265)
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                                                )
                                            )
                                          } 
                                          {
                                            (DQ 
                                              (braced_var_sub
                                                token: (Token id:Id.VSub_Name val:data span_id:2273)
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: 
                                                      (arith_expr.ArithWord
                                                        w: 
                                                          {
                                                            (braced_var_sub
                                                              token: 
                                                                (Token
                                                                  id: Id.VSub_Name
                                                                  val: cmd
                                                                  span_id: 2276
                                                                )
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    (arith_expr.ArithWord
                                                                      w: {(Id.Lit_Digits 1)}
                                                                    )
                                                                )
                                                            )
                                                          }
                                                      )
                                                  )
                                              )
                                            )
                                          } 
                                          {
                                            (braced_var_sub
                                              token: 
                                                (Token
                                                  id: Id.VSub_Name
                                                  val: casUnique
                                                  span_id: 2286
                                                )
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: 
                                                    (arith_expr.ArithWord
                                                      w: 
                                                        {
                                                          (braced_var_sub
                                                            token: 
                                                              (Token
                                                                id: Id.VSub_Name
                                                                val: cmd
                                                                span_id: 2289
                                                              )
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  (arith_expr.ArithWord
                                                                    w: {(Id.Lit_Digits 1)}
                                                                  )
                                                              )
                                                          )
                                                        }
                                                    )
                                                )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(TOUCHED)}
                                              spids: [2300]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:result)
                                              op: assign_op.Equal
                                              rhs: {(NOT_FOUND)}
                                              spids: [2305]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 2312
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.ArithWord
                                                            w: {(Id.Lit_Digits 3)}
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ($ Id.VSub_DollarName '$result') (Id.Lit_Other '\\') 
                                                (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:2335)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [2226 2227 2339 -1]
                                )
                                (case_arm
                                  pat_list: [{(flush_all)}]
                                  action: [
                                    (command.ForEach
                                      iter_name: k
                                      iter_words: [
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: (Token id:Id.VSub_Name val:exptime span_id:2354)
                                              prefix_op: (Id.VSub_Bang)
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            )
                                          )
                                        }
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: 
                                                        (sh_lhs_expr.IndexedName
                                                          name: exptime
                                                          index: 
                                                            (arith_expr.ArithWord
                                                              w: {($ Id.VSub_DollarName '$k')}
                                                            )
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (word_part.ArithSub
                                                            anode: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Plus
                                                                left: 
                                                                  (arith_expr.VarRef
                                                                    token: 
                                                                      (Token
                                                                        id: Id.Lit_ArithVarLike
                                                                        val: time
                                                                        span_id: 2368
                                                                      )
                                                                  )
                                                                right: 
                                                                  (arith_expr.ArithWord
                                                                    w: 
                                                                      {
                                                                        (braced_var_sub
                                                                          token: 
                                                                            (Token
                                                                              id: Id.VSub_Name
                                                                              val: cmd
                                                                              span_id: 2373
                                                                            )
                                                                          bracket_op: 
                                                                            (bracket_op.ArrayIndex
                                                                              expr: 
                                                                                (arith_expr.ArithWord
                                                                                  w: 
                                                                                    {
                                                                                      (
Id.Lit_Digits 1
                                                                                      )
                                                                                    }
                                                                                )
                                                                            )
                                                                          suffix_op: 
                                                                            (suffix_op.Unary
                                                                              op_id: Id.VTest_Hyphen
                                                                              arg_word: {(0)}
                                                                            )
                                                                        )
                                                                      }
                                                                  )
                                                              )
                                                          )
                                                        }
                                                      spids: [2364]
                                                    )
                                                  ]
                                                )
                                              terminator: (Token id:Id.Op_Semi val:';' span_id:2382)
                                            )
                                          ]
                                        )
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobNEqual
                                              left: 
                                                {
                                                  (braced_var_sub
                                                    token: 
                                                      (Token
                                                        id: Id.VSub_Name
                                                        val: cmd
                                                        span_id: 2392
                                                      )
                                                    bracket_op: 
                                                      (bracket_op.ArrayIndex
                                                        expr: 
                                                          (arith_expr.Unary
                                                            op_id: Id.Node_UnaryMinus
                                                            child: 
                                                              (arith_expr.ArithWord
                                                                w: {(Id.Lit_Digits 1)}
                                                              )
                                                          )
                                                      )
                                                  )
                                                }
                                              right: {(noreply)}
                                            )
                                        )
                                        (command.Simple
                                          words: [{(echo)} {(-e)} {(DQ (OK) (Id.Lit_Other '\\') (r))}]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:2416)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [2342 2343 2420 -1]
                                )
                                (case_arm
                                  pat_list: [{(version)}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          words: [
                                            {(echo)}
                                            {(-e)}
                                            {
                                              (DQ ('VERSION ') ($ Id.VSub_DollarName '$VERSION') 
                                                (Id.Lit_Other '\\') (r)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: (Token id:Id.Redir_Great val:'>' span_id:2436)
                                              fd: -1
                                              arg_word: {(DQ ($ Id.VSub_DollarName '$recv'))}
                                            )
                                          ]
                                        )
                                      terminator: (Token id:Id.Op_Amp val:'&' span_id:2441)
                                    )
                                  ]
                                  spids: [2423 2424 2442 -1]
                                )
                              ]
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2446)
                        )
                      ]
                    )
                )
              ]
              negated: F
            )
          terminator: (Token id:Id.Op_Amp val:'&' span_id:2450)
        )
        (C {(socat)} 
          {
            (DQ 
              (braced_var_sub
                token: (Token id:Id.VSub_Name val:protocol span_id:2457)
                suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{(tcp)})
              ) ('-listen:') 
              (braced_var_sub
                token: (Token id:Id.VSub_Name val:port span_id:2463)
                suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{(25252)})
              ) (',reuseaddr,fork')
            )
          } {(system) (Id.Lit_Other ':') (DQ ($ Id.VSub_Number '$0'))}
        )
      ]
    )
  ]
)