(CommandList
  children: [
    (C {(set)} {(-e)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:codir) op:Equal rhs:{($ VSub_Number '$1')} spids:[57])]
      spids: [57]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_wrapper_env)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$2'))}
          spids: [60]
        )
      ]
      spids: [60]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:run_program_env)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$3'))}
          spids: [65]
        )
      ]
      spids: [65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:temp1)
          op: Equal
          rhs: {($ VSub_Name '$codir') (/iconvdata/iconv-test.xxx)}
          spids: [74]
        )
      ]
      spids: [74]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:temp2)
          op: Equal
          rhs: {($ VSub_Name '$codir') (/iconvdata/iconv-test.yyy)}
          spids: [78]
        )
      ]
      spids: [78]
    )
    (C {(trap)} {(DQ ('rm -f ') ($ VSub_Name '$temp1') (' ') ($ VSub_Name '$temp2'))} {(1)} {(2)} {(3)} 
      {(15)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIBPATH)
          op: Equal
          rhs: {($ VSub_Name '$codir') (Lit_Other ':') ($ VSub_Name '$codir') (/iconvdata)}
          spids: [104]
        )
      ]
      spids: [104]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ICONV)
          op: Equal
          rhs: 
            {
              (SQ <'$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \\\n'> 
                <'       $codir/iconv/iconv_prog'>
              )
            }
          spids: [114]
        )
      ]
      spids: [114]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ICONV)
          op: Equal
          rhs: 
            {
              (DQ ($ VSub_Name '$test_wrapper_env') (' ') ($ VSub_Name '$run_program_env') (' ') 
                ($ VSub_Name '$ICONV')
              )
            }
          spids: [120]
        )
      ]
      spids: [120]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (Pipeline
                  children: [
                    (Subshell
                      child: 
                        (CommandList
                          children: [
                            (Sentence
                              child: (C {(echo)} {(DQ (testing) (Lit_Other '\\') (c))})
                              terminator: <Op_Semi ';'>
                            )
                            (C {(echo)} {(1) (Lit_Comma ',') (2) (Lit_Comma ',') (3)})
                          ]
                        )
                      spids: [135 152]
                    )
                    (SimpleCommand
                      words: [{(grep)} {(c)}]
                      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                    )
                  ]
                  negated: F
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair lhs:(LhsName name:ac_n) op:Equal rhs:{(-n)} spids:[167])
                (assign_pair
                  lhs: (LhsName name:ac_c)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [170]
                )
                (assign_pair
                  lhs: (LhsName name:ac_t)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [172]
                )
              ]
              spids: [167]
            )
          ]
          spids: [16777215 164]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair lhs:(LhsName name:ac_n) op:Equal rhs:{(EmptyPart)} spids:[177])
            (assign_pair lhs:(LhsName name:ac_c) op:Equal rhs:{(SQ <'\\c'>)} spids:[179])
            (assign_pair lhs:(LhsName name:ac_t) op:Equal rhs:{(EmptyPart)} spids:[184])
          ]
          spids: [177]
        )
      ]
      spids: [174 186]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:failed) op:Equal rhs:{(0)} spids:[195])]
      spids: [195]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (Sentence
          child: (C {(read)} {(from)} {(to)} {(subset)} {(targets)})
          terminator: <Op_Semi ';'>
        )
      ]
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {(-z)} {(DQ ($ VSub_Name '$subset'))})
                            (C {(test)} {(DQ ($ VSub_Name '$from'))} {(Lit_Other '=')} {(SQ <'#'>)})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 243]
                )
              ]
              spids: [16777215 248]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROG)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(eval)} {(echo)} {($ VSub_Name '$ICONV')})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [257 263]
                      )
                    }
                  spids: [256]
                )
              ]
              spids: [256]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(-n)} {(DQ ($ VSub_Name '$targets'))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (ForEach
                      iter_name: t
                      iter_words: [{($ VSub_Name '$targets')}]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {(-f)} {(testdata/) ($ VSub_Name '$from')})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {($ VSub_Name '$ac_n')} 
                                      {
                                        (DQ ('   test data: ') ($ VSub_Name '$from') (' -> ') 
                                          ($ VSub_Name '$t') (' ') ($ VSub_Name '$ac_c')
                                        )
                                      }
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (SimpleCommand
                                          words: [
                                            {($ VSub_Name '$PROG')}
                                            {(-f)}
                                            {($ VSub_Name '$from')}
                                            {(-t)}
                                            {($ VSub_Name '$t')}
                                            {(testdata/) ($ VSub_Name '$from')}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_Less '<'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                            (Redir
                                              op: <Redir_Great '>'>
                                              fd: 16777215
                                              arg_word: {($ VSub_Name '$temp1')}
                                            )
                                          ]
                                        )
                                        (BraceGroup
                                          children: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(test)} {($ VSub_QMark '$?')} {(-gt)} {(128)})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Exit exit>
                                                          arg_word: {(1)}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [16777215 357]
                                                )
                                              ]
                                              spids: [16777215 364]
                                            )
                                            (Sentence
                                              child: (C {(echo)} {(DQ (FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [374]
                                                    )
                                                  ]
                                                  spids: [374]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [344]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} {(DQ (OK) ($ VSub_Name '$ac_c'))})
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(test)} {(-s)} 
                                                  {(testdata/) ($ VSub_Name '$from') (..) 
                                                    ($ VSub_Name '$t')
                                                  }
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (AndOr
                                              ops: [Op_DPipe]
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(cmp)}
                                                    {($ VSub_Name '$temp1')}
                                                    {(testdata/) ($ VSub_Name '$from') (..) 
                                                      ($ VSub_Name '$t')
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_Great '>'>
                                                      fd: 16777215
                                                      arg_word: {(/dev/null)}
                                                    )
                                                    (Redir
                                                      op: <Redir_GreatAnd '2>&'>
                                                      fd: 2
                                                      arg_word: {(1)}
                                                    )
                                                  ]
                                                  more_env: [
                                                    (env_pair
                                                      name: LC_ALL
                                                      val: {(C)}
                                                      spids: [409]
                                                    )
                                                  ]
                                                )
                                                (BraceGroup
                                                  children: [
                                                    (Sentence
                                                      child: (C {(echo)} {(DQ (/FAILED))})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                    (Sentence
                                                      child: 
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:failed)
                                                              op: Equal
                                                              rhs: {(1)}
                                                              spids: [440]
                                                            )
                                                          ]
                                                          spids: [440]
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Continue continue>
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [431]
                                                )
                                              ]
                                            )
                                            (C {(echo)} {($ VSub_Name '$ac_n')} 
                                              {(DQ (/OK) ($ VSub_Name '$ac_c'))}
                                            )
                                          ]
                                          spids: [16777215 406]
                                        )
                                      ]
                                      spids: [16777215 460]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} 
                                      {
                                        (DQ (' -> ') ($ VSub_Name '$from') (' ') ($ VSub_Name '$ac_c'))
                                      }
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (SimpleCommand
                                          words: [
                                            {($ VSub_Name '$PROG')}
                                            {(-f)}
                                            {($ VSub_Name '$t')}
                                            {(-t)}
                                            {($ VSub_Name '$to')}
                                            {(-o)}
                                            {($ VSub_Name '$temp2')}
                                            {($ VSub_Name '$temp1')}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_Less '<'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                        (BraceGroup
                                          children: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(test)} {($ VSub_QMark '$?')} {(-gt)} {(128)})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Exit exit>
                                                          arg_word: {(1)}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [16777215 511]
                                                )
                                              ]
                                              spids: [16777215 518]
                                            )
                                            (Sentence
                                              child: (C {(echo)} {(DQ (FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [528]
                                                    )
                                                  ]
                                                  spids: [528]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [498]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} {(DQ (OK) ($ VSub_Name '$ac_c'))})
                                    (AndOr
                                      ops: [Op_DAmp Op_DPipe]
                                      children: [
                                        (C {(test)} {(-s)} {($ VSub_Name '$temp1')})
                                        (SimpleCommand
                                          words: [
                                            {(cmp)}
                                            {(testdata/) ($ VSub_Name '$from')}
                                            {($ VSub_Name '$temp2')}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_Great '>'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                            (Redir
                                              op: <Redir_GreatAnd '2>&'>
                                              fd: 2
                                              arg_word: {(1)}
                                            )
                                          ]
                                          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[557])]
                                        )
                                        (BraceGroup
                                          children: [
                                            (Sentence
                                              child: (C {(echo)} {(DQ (/FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [586]
                                                    )
                                                  ]
                                                  spids: [586]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [577]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {(DQ (/OK))})
                                    (C {(rm)} {(-f)} {($ VSub_Name '$temp1')} {($ VSub_Name '$temp2')})
                                  ]
                                  spids: [16777215 303]
                                )
                              ]
                              spids: [16777215 612]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {($ VSub_Name '$subset')} {(Lit_Other '=')} {(Y)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {($ VSub_Name '$ac_n')} 
                                      {
                                        (DQ ('      suntzu: ') ($ VSub_Name '$from') (' -> ') 
                                          ($ VSub_Name '$t') (' -> ') ($ VSub_Name '$to') (' ') ($ VSub_Name '$ac_c')
                                        )
                                      }
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (Pipeline
                                          children: [
                                            (SimpleCommand
                                              words: [
                                                {($ VSub_Name '$PROG')}
                                                {(-f)}
                                                {($ VSub_Name '$from')}
                                                {(-t)}
                                                {($ VSub_Name '$t')}
                                                {(testdata/suntzus)}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Redir_Less '<'>
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                            (SimpleCommand
                                              words: [
                                                {($ VSub_Name '$PROG')}
                                                {(-f)}
                                                {($ VSub_Name '$t')}
                                                {(-t)}
                                                {($ VSub_Name '$to')}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Redir_Great '>'>
                                                  fd: 16777215
                                                  arg_word: {($ VSub_Name '$temp1')}
                                                )
                                              ]
                                            )
                                          ]
                                          negated: F
                                        )
                                        (BraceGroup
                                          children: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(test)} {($ VSub_QMark '$?')} {(-gt)} {(128)})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Exit exit>
                                                          arg_word: {(1)}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [16777215 707]
                                                )
                                              ]
                                              spids: [16777215 714]
                                            )
                                            (Sentence
                                              child: (C {(echo)} {(DQ (FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [724]
                                                    )
                                                  ]
                                                  spids: [724]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [694]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} {(DQ (OK) ($ VSub_Name '$ac_c'))})
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (SimpleCommand
                                          words: [{(cmp)} {(testdata/suntzus)} {($ VSub_Name '$temp1')}]
                                          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[744])]
                                        )
                                        (BraceGroup
                                          children: [
                                            (Sentence
                                              child: (C {(echo)} {(DQ (/FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [765]
                                                    )
                                                  ]
                                                  spids: [765]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [756]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {(DQ (/OK))})
                                  ]
                                  spids: [16777215 639]
                                )
                              ]
                              spids: [16777215 782]
                            )
                            (C {(rm)} {(-f)} {($ VSub_Name '$temp1')})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(test)} {(DQ ($ VSub_Name '$t'))} {(Lit_Other '=')} {(UTF8)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: 
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:tc)
                                              op: Equal
                                              rhs: {(UTF-8)}
                                              spids: [812]
                                            )
                                          ]
                                          spids: [812]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 810]
                                )
                              ]
                              else_action: [
                                (Sentence
                                  child: 
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:tc)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$t'))}
                                          spids: [818]
                                        )
                                      ]
                                      spids: [818]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              spids: [816 824]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp Op_DAmp Op_DAmp]
                                          children: [
                                            (C {(test)} {(-f)} 
                                              {(../localedata/charmaps/) ($ VSub_Name '$from')}
                                            )
                                            (C {(test)} {(-f)} 
                                              {(../localedata/charmaps/) ($ VSub_Name '$tc')}
                                            )
                                            (C {(test)} {(-f)} {(testdata/) ($ VSub_Name '$from')})
                                            (Pipeline
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(grep)}
                                                    {(SQ <'<U....><U....>'>)}
                                                    {(../localedata/charmaps/) ($ VSub_Name '$from')}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_Great '>'>
                                                      fd: 16777215
                                                      arg_word: {(/dev/null)}
                                                    )
                                                  ]
                                                )
                                              ]
                                              negated: T
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {($ VSub_Name '$ac_n')} 
                                      {
                                        (DQ ('test charmap: ') ($ VSub_Name '$from') (' -> ') 
                                          ($ VSub_Name '$t') (' ') ($ VSub_Name '$ac_c')
                                        )
                                      }
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (SimpleCommand
                                          words: [
                                            {($ VSub_Name '$PROG')}
                                            {(-f)}
                                            {(../localedata/charmaps/) ($ VSub_Name '$from')}
                                            {(-t)}
                                            {(../localedata/charmaps/) ($ VSub_Name '$tc')}
                                            {(testdata/) ($ VSub_Name '$from')}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_Less '<'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                            (Redir
                                              op: <Redir_Great '>'>
                                              fd: 16777215
                                              arg_word: {($ VSub_Name '$temp1')}
                                            )
                                          ]
                                        )
                                        (BraceGroup
                                          children: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(test)} {($ VSub_QMark '$?')} {(-gt)} {(128)})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Exit exit>
                                                          arg_word: {(1)}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [16777215 933]
                                                )
                                              ]
                                              spids: [16777215 940]
                                            )
                                            (Sentence
                                              child: (C {(echo)} {(DQ (FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [950]
                                                    )
                                                  ]
                                                  spids: [950]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [920]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} {(DQ (OK) ($ VSub_Name '$ac_c'))})
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(test)} {(-s)} 
                                                  {(testdata/) ($ VSub_Name '$from') (..) 
                                                    ($ VSub_Name '$t')
                                                  }
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (AndOr
                                              ops: [Op_DPipe]
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {(cmp)}
                                                    {($ VSub_Name '$temp1')}
                                                    {(testdata/) ($ VSub_Name '$from') (..) 
                                                      ($ VSub_Name '$t')
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_Great '>'>
                                                      fd: 16777215
                                                      arg_word: {(/dev/null)}
                                                    )
                                                    (Redir
                                                      op: <Redir_GreatAnd '2>&'>
                                                      fd: 2
                                                      arg_word: {(1)}
                                                    )
                                                  ]
                                                  more_env: [
                                                    (env_pair
                                                      name: LC_ALL
                                                      val: {(C)}
                                                      spids: [985]
                                                    )
                                                  ]
                                                )
                                                (BraceGroup
                                                  children: [
                                                    (Sentence
                                                      child: (C {(echo)} {(DQ (/FAILED))})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                    (Sentence
                                                      child: 
                                                        (Assignment
                                                          keyword: Assign_None
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (LhsName name:failed)
                                                              op: Equal
                                                              rhs: {(1)}
                                                              spids: [1016]
                                                            )
                                                          ]
                                                          spids: [1016]
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Continue continue>
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [1007]
                                                )
                                              ]
                                            )
                                            (C {(echo)} {($ VSub_Name '$ac_n')} 
                                              {(DQ (/OK) ($ VSub_Name '$ac_c'))}
                                            )
                                          ]
                                          spids: [16777215 982]
                                        )
                                      ]
                                      spids: [16777215 1036]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} 
                                      {
                                        (DQ (' -> ') ($ VSub_Name '$from') (' ') ($ VSub_Name '$ac_c'))
                                      }
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (SimpleCommand
                                          words: [
                                            {($ VSub_Name '$PROG')}
                                            {(-t)}
                                            {(../localedata/charmaps/) ($ VSub_Name '$from')}
                                            {(-f)}
                                            {(../localedata/charmaps/) ($ VSub_Name '$tc')}
                                            {(-o)}
                                            {($ VSub_Name '$temp2')}
                                            {($ VSub_Name '$temp1')}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_Less '<'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                        (BraceGroup
                                          children: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(test)} {($ VSub_QMark '$?')} {(-gt)} {(128)})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (Sentence
                                                      child: 
                                                        (ControlFlow
                                                          token: <ControlFlow_Exit exit>
                                                          arg_word: {(1)}
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  spids: [16777215 1091]
                                                )
                                              ]
                                              spids: [16777215 1098]
                                            )
                                            (Sentence
                                              child: (C {(echo)} {(DQ (FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [1108]
                                                    )
                                                  ]
                                                  spids: [1108]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [1078]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {($ VSub_Name '$ac_n')} {(DQ (OK) ($ VSub_Name '$ac_c'))})
                                    (AndOr
                                      ops: [Op_DAmp Op_DPipe]
                                      children: [
                                        (C {(test)} {(-s)} {($ VSub_Name '$temp1')})
                                        (SimpleCommand
                                          words: [
                                            {(cmp)}
                                            {(testdata/) ($ VSub_Name '$from')}
                                            {($ VSub_Name '$temp2')}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Redir_Great '>'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                            (Redir
                                              op: <Redir_GreatAnd '2>&'>
                                              fd: 2
                                              arg_word: {(1)}
                                            )
                                          ]
                                          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1137])]
                                        )
                                        (BraceGroup
                                          children: [
                                            (Sentence
                                              child: (C {(echo)} {(DQ (/FAILED))})
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (Assignment
                                                  keyword: Assign_None
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (LhsName name:failed)
                                                      op: Equal
                                                      rhs: {(1)}
                                                      spids: [1166]
                                                    )
                                                  ]
                                                  spids: [1166]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                            (Sentence
                                              child: 
                                                (ControlFlow
                                                  token: <ControlFlow_Continue continue>
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          spids: [1157]
                                        )
                                      ]
                                    )
                                    (C {(echo)} {(DQ (/OK))})
                                    (C {(rm)} {(-f)} {($ VSub_Name '$temp1')} {($ VSub_Name '$temp2')})
                                  ]
                                  spids: [16777215 875]
                                )
                              ]
                              spids: [16777215 1192]
                            )
                          ]
                          spids: [290 1195]
                        )
                      spids: [286 288]
                    )
                  ]
                  spids: [16777215 278]
                )
              ]
              spids: [16777215 1198]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name '$subset'))} {(Lit_Other '=')} {(N)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {($ VSub_Name '$ac_n')} 
                      {
                        (DQ ('      suntzu: ASCII -> ') ($ VSub_Name '$to') (' -> ASCII ') 
                          ($ VSub_Name '$ac_c')
                        )
                      }
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [
                                {($ VSub_Name '$PROG')}
                                {(-f)}
                                {(ASCII)}
                                {(-t)}
                                {($ VSub_Name '$to')}
                                {(testdata/suntzus)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [
                                {($ VSub_Name '$PROG')}
                                {(-f)}
                                {($ VSub_Name '$to')}
                                {(-t)}
                                {(ASCII)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Redir_Great '>'>
                                  fd: 16777215
                                  arg_word: {($ VSub_Name '$temp1')}
                                )
                              ]
                            )
                          ]
                          negated: F
                        )
                        (BraceGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(test)} {($ VSub_QMark '$?')} {(-gt)} {(128)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Sentence
                                      child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  spids: [16777215 1279]
                                )
                              ]
                              spids: [16777215 1286]
                            )
                            (Sentence
                              child: (C {(echo)} {(DQ (FAILED))})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:failed)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [1296]
                                    )
                                  ]
                                  spids: [1296]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Continue continue>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [1266]
                        )
                      ]
                    )
                    (C {(echo)} {($ VSub_Name '$ac_n')} {(DQ (OK) ($ VSub_Name '$ac_c'))})
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (SimpleCommand
                          words: [{(cmp)} {(testdata/suntzus)} {($ VSub_Name '$temp1')}]
                          more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1316])]
                        )
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(echo)} {(DQ (/FAILED))})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:failed)
                                      op: Equal
                                      rhs: {(1)}
                                      spids: [1337]
                                    )
                                  ]
                                  spids: [1337]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (ControlFlow token:<ControlFlow_Continue continue>)
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [1328]
                        )
                      ]
                    )
                    (C {(echo)} {(DQ (/OK))})
                  ]
                  spids: [16777215 1215]
                )
              ]
              spids: [16777215 1354]
            )
          ]
          spids: [211 1356]
        )
      redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(TESTS)})]
    )
    (WhileUntil
      keyword: <KW_While while>
      cond: [(Sentence child:(C {(read)} {(utf8)} {(from)} {(filename)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(test)} {(-z)} {(DQ ($ VSub_Name '$filename'))})
                            (C {(test)} {(DQ ($ VSub_Name '$utf8'))} {(Lit_Other '=')} {(SQ <'#'>)})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 1412]
                )
              ]
              spids: [16777215 1417]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROG)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(eval)} {(echo)} {($ VSub_Name '$ICONV')})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1426 1432]
                      )
                    }
                  spids: [1425]
                )
              ]
              spids: [1425]
            )
            (C {(echo)} {($ VSub_Name '$ac_n')} 
              {
                (DQ ('test encoder: ') ($ VSub_Name '$utf8') (' -> ') ($ VSub_Name '$from') (' ') 
                  ($ VSub_Name '$ac_c')
                )
              }
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$PROG')}
                {(-f)}
                {($ VSub_Name '$utf8')}
                {(-t)}
                {($ VSub_Name '$from')}
              ]
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name utf8)}
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$temp1')}
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe Op_DPipe]
              children: [
                (SimpleCommand
                  words: [
                    {(cmp)}
                    {($ VSub_Name '$temp1')}
                    {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.BE)}
                  ]
                  redirects: [
                    (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                    (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1480])]
                )
                (SimpleCommand
                  words: [
                    {(cmp)}
                    {($ VSub_Name '$temp1')}
                    {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.LE)}
                  ]
                  redirects: [
                    (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                    (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1507])]
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ (/FAILED))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:failed)
                              op: Equal
                              rhs: {(1)}
                              spids: [1543]
                            )
                          ]
                          spids: [1543]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [1534]
                )
              ]
            )
            (C {(echo)} {(DQ (OK))})
            (C {(echo)} {($ VSub_Name '$ac_n')} 
              {
                (DQ ('test decoder: ') ($ VSub_Name '$from') (' -> ') ($ VSub_Name '$utf8') (' ') 
                  ($ VSub_Name '$ac_c')
                )
              }
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$PROG')}
                {(-f)}
                {($ VSub_Name '$from')}
                {(-t)}
                {($ VSub_Name '$utf8')}
              ]
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.BE)}
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$temp1')}
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [
                    {(cmp)}
                    {($ VSub_Name '$temp1')}
                    {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name utf8)}
                  ]
                  redirects: [
                    (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                    (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1606])]
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ (/FAILED))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:failed)
                              op: Equal
                              rhs: {(1)}
                              spids: [1641]
                            )
                          ]
                          spids: [1641]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [1632]
                )
              ]
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$PROG')}
                {(-f)}
                {($ VSub_Name '$from')}
                {(-t)}
                {($ VSub_Name '$utf8')}
              ]
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.LE)}
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$temp1')}
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [
                    {(cmp)}
                    {($ VSub_Name '$temp1')}
                    {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name utf8)}
                  ]
                  redirects: [
                    (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                    (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1678])]
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ (/FAILED))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:failed)
                              op: Equal
                              rhs: {(1)}
                              spids: [1713]
                            )
                          ]
                          spids: [1713]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [1704]
                )
              ]
            )
            (C {(echo)} {(DQ (OK))})
            (C {(echo)} {($ VSub_Name '$ac_n')} 
              {
                (DQ ('test non-BOM: ') (${ VSub_Name from) ('BE -> ') (${ VSub_Name from) ('LE ') 
                  ($ VSub_Name '$ac_c')
                )
              }
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$PROG')}
                {(-f)}
                {(${ VSub_Name from) (BE)}
                {(-t)}
                {(${ VSub_Name from) (LE)}
              ]
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.BE)}
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$temp1')}
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [
                    {(cmp)}
                    {($ VSub_Name '$temp1')}
                    {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.LE)}
                  ]
                  redirects: [
                    (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                    (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1786])]
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ (/FAILED))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:failed)
                              op: Equal
                              rhs: {(1)}
                              spids: [1822]
                            )
                          ]
                          spids: [1822]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [1813]
                )
              ]
            )
            (C {(echo)} {(DQ (OK))})
            (C {(echo)} {($ VSub_Name '$ac_n')} 
              {
                (DQ ('test non-BOM: ') (${ VSub_Name from) ('LE -> ') (${ VSub_Name from) ('BE ') 
                  ($ VSub_Name '$ac_c')
                )
              }
            )
            (SimpleCommand
              words: [
                {($ VSub_Name '$PROG')}
                {(-f)}
                {(${ VSub_Name from) (LE)}
                {(-t)}
                {(${ VSub_Name from) (BE)}
              ]
              redirects: [
                (Redir
                  op: <Redir_Less '<'>
                  fd: 16777215
                  arg_word: {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.LE)}
                )
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_Name '$temp1')}
                )
              ]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (SimpleCommand
                  words: [
                    {(cmp)}
                    {($ VSub_Name '$temp1')}
                    {(testdata/) (${ VSub_Name filename) (..) (${ VSub_Name from) (.BE)}
                  ]
                  redirects: [
                    (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                    (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
                  ]
                  more_env: [(env_pair name:LC_ALL val:{(C)} spids:[1895])]
                )
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ (/FAILED))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:failed)
                              op: Equal
                              rhs: {(1)}
                              spids: [1931]
                            )
                          ]
                          spids: [1931]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence
                      child: (ControlFlow token:<ControlFlow_Continue continue>)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [1922]
                )
              ]
            )
            (C {(echo)} {(DQ (OK))})
          ]
          spids: [1380 1948]
        )
      redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{(TESTS2)})]
    )
    (SimpleCommand
      words: [{(printf)} {(SQ <'\\016\\377\\377\\377\\377\\377\\377\\377'>)}]
      redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$temp1')})]
    )
    (ForEach
      iter_name: from
      iter_words: [{($ VSub_Name '$iconv_modules')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (C {(echo)} {($ VSub_Name '$ac_n')} 
              {(DQ ('test decoder ') ($ VSub_Name '$from') (' ') ($ VSub_Name '$ac_c'))}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PROG)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(eval)} {(echo)} {($ VSub_Name '$ICONV')})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [1994 2000]
                      )
                    }
                  spids: [1993]
                )
              ]
              spids: [1993]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{($ VSub_Name '$PROG')} {(-f)} {($ VSub_Name '$from')} {(-t)} {(UTF8)}]
                          redirects: [
                            (Redir
                              op: <Redir_Less '<'>
                              fd: 16777215
                              arg_word: {($ VSub_Name '$temp1')}
                            )
                            (Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                            (Redir
                              op: <Redir_GreatAnd '2>&'>
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(Lit_Other ':')})]
                  spids: [16777215 2027]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:status)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [2039]
                    )
                  ]
                  spids: [2039]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (C {(test)} {($ VSub_Name '$status')} {(-gt)} {(1)})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(echo)} {(DQ (/FAILED))})
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:failed)
                              op: Equal
                              rhs: {(1)}
                              spids: [2065]
                            )
                          ]
                          spids: [2065]
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      spids: [16777215 2055]
                    )
                  ]
                  spids: [16777215 2072]
                )
              ]
              spids: [2036 2075]
            )
            (C {(echo)} {(DQ (OK))})
          ]
          spids: [1978 2084]
        )
      spids: [1973 1976]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_Name '$failed')})
  ]
)