(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <pwd>
                    more_env: []
                    words: [{<pwd>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              ) <Id.Lit_Colon ':'> <'/command'> <Id.Lit_Colon ':'> <'/usr/local/bin'> <Id.Lit_Colon ':'> 
              <'/usr/local/sbin'> <Id.Lit_Colon ':'> <'/bin'> <Id.Lit_Colon ':'> <'/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> 
              <'/usr/sbin'> <Id.Lit_Colon ':'> <'/usr/X11R6/bin'> <Id.Lit_Colon ':'> <'/usr/ucb'>
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<PATH>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <umask>
      more_env: []
      words: [{<umask>} {<022>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <die>
      name: die
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <catexe>
      name: catexe
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <cat>
              more_env: []
              words: [{<cat>}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_Number 1)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <chmod>
              more_env: []
              words: [{<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <filter_svstat>
      name: filter_svstat
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [
                {<sed>}
                {<-e>}
                {(SQ <'s/[0-9]* seconds/x seconds/'>)}
                {<-e>}
                {(SQ <'s/pid [0-9]*/pid x/'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <rm>
          more_env: []
          words: [{<rm>} {<-rf>} {<rts-tmp>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [{<die>} {(DQ <'Could not clean up old rts-tmp'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<rts-tmp>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [{<die>} {(DQ <'Could not create new rts-tmp'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <cd>
          more_env: []
          words: [{<cd>} {<rts-tmp>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [{<die>} {(DQ <'Could not change to rts-tmp'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<test.sv>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <die>
          more_env: []
          words: [{<die>} {(DQ <'Could not create test.sv'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TOP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TOP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TOP='> name:TOP)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <pwd>
                    more_env: []
                    words: [{<pwd>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envdir requires arguments'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envdir>
              more_env: []
              words: [{<envdir>} {<whatever>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envdir complains if it cannot read directory'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ln>
      more_env: []
      words: [{<ln>} {<-s>} {<env1>} {<env1>}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envdir>
              more_env: []
              words: [{<envdir>} {<env1>} {<echo>} {<yes>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envdir complains if it cannot read file'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<rm> more_env:[] words:[{<rm>} {<env1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <mkdir>
      more_env: []
      words: [{<mkdir>} {<env1>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ln>
      more_env: []
      words: [{<ln>} {<-s>} {<Message>} {<'env1/Message'>}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envdir>
              more_env: []
              words: [{<envdir>} {<env1>} {<echo>} {<yes>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envdir adds variables'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<'env1/Message'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<This>} {<is>} {<a>} {<test.>} {<This>} {<is>} {<only>} {<a>} {<test.>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'env1/Message'>})]
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envdir>
              more_env: []
              words: [{<envdir>} {<env1>} {<sh>} {<-c>} {(SQ <'echo $Message'>)}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envdir removes variables'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <mkdir>
      more_env: []
      words: [{<mkdir>} {<env2>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <touch>
      more_env: []
      words: [{<touch>} {<'env2/Message'>}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envdir>
              more_env: []
              words: [{<envdir>} {<env1>} {<envdir>} {<env2>} {<sh>} {<-c>} {(SQ <'echo $Message'>)}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envuidgid insists on two arguments'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envuidgid>
              more_env: []
              words: [{<envuidgid>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envuidgid>
              more_env: []
              words: [{<envuidgid>} {<root>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envuidgid sets UID=0 for root'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envuidgid>
              more_env: []
              words: [{<envuidgid>} {<root>} {<printenv>} {<UID>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- envuidgid complains if it cannot run program'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <envuidgid>
              more_env: []
              words: [{<envuidgid>} {<root>} {<'./nonexistent'>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fghack insists on an argument'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <fghack>
              more_env: []
              words: [{<fghack>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fghack complains if it cannot run program'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <fghack>
              more_env: []
              words: [{<fghack>} {<'./nonexistent'>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fghack runs a program'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <fghack>
              more_env: []
              words: [{<fghack>} {<sh>} {<-c>} {(SQ <'echo hi &'>)}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- match handles literal string'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<one>} {<one>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<one>} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<one>} {<on>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<one>} {<onf>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<one>} {(SQ <'one*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<one>} {<onetwo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- match handles empty string'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ )} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ )} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- match handles full-line wildcard'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'*'>)} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'*'>)} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'*'>)} {(SQ <'*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'*'>)} {<one>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- match handles ending wildcard'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {<one>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {(SQ <'one*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {<onetwo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {<on>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'one*'>)} {<onf>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- match handles wildcard termination'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <' one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <'x one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <'* one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <'xy one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <one>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <' two'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <'  one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* one'>)} {(SQ <'xy one '>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- match handles multiple wildcards'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <'  one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <'x  one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <' y one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <'x y one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <one>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <' one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'* * one'>)} {(SQ <'   one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fnmatch handles literal string'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<Fone>} {<one>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<Fone>} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<Fone>} {<on>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<Fone>} {<onf>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<Fone>} {(SQ <'one*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {<Fone>} {<onetwo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fnmatch handles empty string'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <F>)} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <F>)} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fnmatch handles full-line wildcard'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F*'>)} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F*'>)} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F*'>)} {(SQ <'*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F*'>)} {<one>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fnmatch handles ending wildcard'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {<one>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {(SQ <'one*'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {<onetwo>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {(SQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {<x>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {<on>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'Fone*'>)} {<onf>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fnmatch handles wildcard termination'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <' one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <'x one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <'* one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <'xy one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <one>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <' two'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <'  one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* one'>)} {(SQ <'xy one '>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- fnmatch handles multiple wildcards'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <'  one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <'x  one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <' y one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <'x y one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <one>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <' one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <matchtest>
      more_env: []
      words: [{<matchtest>} {(SQ <'F* * one'>)} {(SQ <'   one'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog prints nothing with no actions'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog e prints to stderr'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog inserts newline after partial final line'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Pipeline
                          children: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<two>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <tr>
                              more_env: []
                              words: [{<tr>} {<-d>} {(SQ <'\\012'>)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _>]
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles multiple actions'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<e>} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles wildcard -'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {(SQ <'-*'>)} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles literal +'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {(SQ <'-*'>)} {(SQ <'+one'>)} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles fnmatch -'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<F>} {(SQ <'-*'>)} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles fnmatch +'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<two>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<one>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<F>} {(SQ <'-*'>)} {(SQ <'+*o*'>)} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles long lines for stderr'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      <
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678
                      >
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      <
01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
                      >
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      <
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
                      >
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<e>}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog handles status files'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<test.status>}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <multilog>
                  more_env: []
                  words: [{<multilog>} {<Id.Lit_Equals '='> <test.status>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Pipeline
      children: [
        (command.Simple
          blame_tok: <uniq>
          more_env: []
          words: [{<uniq>} {<-c>}]
          redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<test.status>})]
          do_fork: T
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {(SQ <'s/[ \t]*[ \t]/_/g'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- multilog t has the right format'>)}]
      redirects: []
      do_fork: T
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<ONE>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<TWO>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <multilog>
          more_env: []
          words: [{<multilog>} {<t>} {<e>}]
          redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
          do_fork: T
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {(SQ <'s/[0-9a-f]/x/g'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svstat handles new and nonexistent directories'>)}]
      redirects: []
      do_fork: T
    )
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<echo>} {<hi>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run'>})]
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<755>} {<'test.sv/run'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <touch>
      more_env: []
      words: [{<touch>} {<'test.sv/down'>}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svstat>
              more_env: []
              words: [{<svstat>} {<test.sv>} {<nonexistent>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svc handles new and nonexistent directories'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svc>
              more_env: []
              words: [{<svc>} {<test.sv>} {<nonexistent>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svok handles new and nonexistent directories'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<nonexistent>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- supervise handles nonexistent directories'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <supervise>
              more_env: []
              words: [{<supervise>} {<nonexistent>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- pgrphack insists on an argument'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <pgrphack>
              more_env: []
              words: [{<pgrphack>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- pgrphack complains if it cannot run program'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <pgrphack>
              more_env: []
              words: [{<pgrphack>} {<'./nonexistent'>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- pgrphack runs a program'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <pgrphack>
              more_env: []
              words: [{<pgrphack>} {<echo>} {<ok>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- readproctitle insists on an argument'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <readproctitle>
              more_env: []
              words: [{<readproctitle>}]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'/dev/null'>})]
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- readproctitle insists on last argument being at least five bytes'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <readproctitle>
              more_env: []
              words: [{<readproctitle>} {<..........>} {<four>}]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'/dev/null'>})]
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock requires arguments'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<whatever>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock complains if it cannot create lock file'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<'nonexistent/lock'>} {<echo>} {<wrong>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock -x exits quietly if it cannot create lock file'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<-x>} {<'nonexistent/lock'>} {<echo>} {<wrong>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock creates lock file'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<lock>} {<echo>} {<ok>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock does not truncate lock file'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<ok>}]
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<lock>})]
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<lock>} {<cat>} {<lock>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<lock>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock -n complains if file is already locked'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<lock>} {<sh>} {<-c>} {(SQ <'setlock -n lock echo one && echo two'>)}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- setlock -nx exits quietly if file is already locked'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <setlock>
              more_env: []
              words: [{<setlock>} {<lock>} {<sh>} {<-c>} {(SQ <'setlock -nx lock echo one && echo two'>)}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- softlimit insists on an argument'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <softlimit>
              more_env: []
              words: [{<softlimit>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- softlimit complains if it cannot run program'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <softlimit>
              more_env: []
              words: [{<softlimit>} {<'./nonexistent'>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- softlimit -p0 still allows exec'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <softlimit>
              more_env: []
              words: [{<softlimit>} {<-p0>} {<echo>} {<'./nonexistent'>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {(SQ <'--- supervise starts, svok works, svup works, svstat works, svc -x works'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Simple
          blame_tok: <supervise>
          more_env: []
          words: [{<supervise>} {<test.sv>}]
          redirects: []
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svup>
              more_env: []
              words: [{<svup>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svup>
              more_env: []
              words: [{<svup>} {<-l>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svup>
              more_env: []
              words: [{<svup>} {<-L>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <svstat>
                      more_env: []
                      words: [{<svstat>} {<test.sv>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {($ Id.VSub_QMark '?')}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <filter_svstat>
          more_env: []
          words: [{<filter_svstat>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svc>
              more_env: []
              words: [{<svc>} {<-x>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Simple
              blame_tok: <svstat>
              more_env: []
              words: [{<svstat>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svc -ox works'>)}]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Simple
          blame_tok: <supervise>
          more_env: []
          words: [{<supervise>} {<test.sv>}]
          redirects: []
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-ox>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svstat and svup work for up services'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'test.sv/run'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#!/bin/sh\n'>
                <'sleep 1\n'>
                <'svstat .\n'>
                <'echo '>
                ($ Id.VSub_QMark '?')
                <'\n'>
                <'svstat -l .\n'>
                <'echo '>
                ($ Id.VSub_QMark '?')
                <'\n'>
                <'svstat -L .\n'>
                <'echo '>
                ($ Id.VSub_QMark '?')
                <'\n'>
                <'svup .\n'>
                <'echo '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
                <'svup -L .\n'>
                <'echo '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
                <'svup -l .\n'>
                <'echo '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <supervise>
              more_env: []
              words: [{<supervise>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <filter_svstat>
              more_env: []
              words: [{<filter_svstat>}]
              redirects: []
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _>]
        )
      terminator: <Id.Op_Amp _>
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-ox>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svstat and svup work for logged services'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'test.sv/run'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [
                <'#!/bin/sh\n'>
                <'sleep 1\n'>
                <'svstat .\n'>
                <'echo '>
                ($ Id.VSub_QMark '?')
                <'\n'>
                <'svstat -l .\n'>
                <'echo '>
                ($ Id.VSub_QMark '?')
                <'\n'>
                <'svstat -L .\n'>
                <'echo '>
                ($ Id.VSub_QMark '?')
                <'\n'>
                <'svup .\n'>
                <'echo '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
                <'svup -L .\n'>
                <'echo '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
                <'svup -l .\n'>
                <'echo '>
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$')
                <'?\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'test.sv/log'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#!/bin/sh\n'> <'exec cat\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <supervise>
              more_env: []
              words: [{<supervise>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <filter_svstat>
              more_env: []
              words: [{<filter_svstat>}]
              redirects: []
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _>]
        )
      terminator: <Id.Op_Amp _>
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-Lolox>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<'test.sv/log'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svc -u works'>)}]
      redirects: []
      do_fork: T
    )
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<echo>} {<first>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<mv>} {<run2>} {<run>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run'>})]
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<755>} {<'test.sv/run'>}]
      redirects: []
      do_fork: T
    )
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<echo>} {<second>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<svc>} {<-x>} {<.>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run2'>})]
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<755>} {<'test.sv/run2'>}]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Simple
          blame_tok: <supervise>
          more_env: []
          words: [{<supervise>} {<test.sv>}]
          redirects: []
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <svok>
              more_env: []
              words: [{<svok>} {<test.sv>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-u>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- supervise runs stop on down'>)}]
      redirects: []
      do_fork: T
    )
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<svc>} {<-dx>} {<.>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run'>})]
    )
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<echo>} {<Id.KW_In in>} {<stop>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/stop'>})]
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<'test.sv/down'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<Id.Lit_Other '+'> <x>} {<'test.sv/run'>} {<'test.sv/stop'>}]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Simple
          blame_tok: <supervise>
          more_env: []
          words: [{<supervise>} {<test.sv>}]
          redirects: []
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<'test.sv/stop'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- supervise stops log after main'>)}]
      redirects: []
      do_fork: T
    )
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'exec ../../sleeper'>)}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/log'>})]
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<Id.Lit_Other '+'> <x>} {<'test.sv/log'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <supervise>
      more_env: []
      words: [{<supervise>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-f>} {<'test.sv/log'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>}] redirects:[] do_fork:T)
    (command.Subshell
      left: <Id.Op_LParen _>
      child: 
        (command.CommandList
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ <'#!/bin/sh'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ <'exec ../../sleeper'>)}]
              redirects: []
              do_fork: T
            )
          ]
        )
      right: <Id.Right_Subshell _>
      redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'test.sv/run'>})]
    )
    (command.Simple
      blame_tok: <chmod>
      more_env: []
      words: [{<chmod>} {<755>} {<'test.sv/run'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- svc sends right signals'>)}]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Simple
          blame_tok: <supervise>
          more_env: []
          words: [{<supervise>} {<test.sv>}]
          redirects: []
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-a>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-c>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-h>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-i>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-t>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-q>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-1>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-2>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-w>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-d>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<sleep> more_env:[] words:[{<sleep>} {<1>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-xk>} {<test.sv>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<wait> more_env:[] words:[{<wait>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <mkdir>
      more_env: []
      words: [{<mkdir>} {<service>} {<svc0>} {<svc1>} {<svc2>} {<'svc2/log'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'svc0/run'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#!/bin/sh\n'> <'echo svc0 ran >> output\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'svc1/run'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#!/bin/sh\n'> <'echo svc1 ran\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'svc1/log'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#!/bin/sh\n'> <'cat > output\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'svc2/run'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#!/bin/sh\n'> <'echo svc2 ran\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <catexe>
      more_env: []
      words: [{<catexe>} {<'svc2/log/run'>}]
      redirects: [
        (Redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_tok: <Id.Undefined_Tok ''>
              stdin_parts: [<'#!/bin/sh\n'> <'cat > ../output\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <ln>
      more_env: []
      words: [
        {<ln>}
        {<-s>}
        {
          (CommandSub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Simple
                blame_tok: <pwd>
                more_env: []
                words: [{<pwd>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Backtick_Right '`'>
          ) <'/svc'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
        }
        {<'service/'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Sentence
      child: 
        (command.Simple
          blame_tok: <svscan>
          more_env: []
          words: [
            {<svscan>}
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <pwd>
                    more_env: []
                    words: [{<pwd>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              ) <'/service'>
            }
          ]
          redirects: [
            (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<svscan.log>})
            (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
      terminator: <Id.Op_Amp _>
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'svscanpid='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'svscanpid='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'svscanpid='> name:svscanpid)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Bang '!')}
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <svok>
                  more_env: []
                  words: [{<svok>} {<svc0>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <svok>
                  more_env: []
                  words: [{<svok>} {<svc1>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <svok>
                  more_env: []
                  words: [{<svok>} {<svc2>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <svok>
                  more_env: []
                  words: [{<svok>} {<'svc2/log'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <kill>
      more_env: []
      words: [{<kill>} {($ Id.VSub_DollarName svscanpid)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <wait>
      more_env: []
      words: [{<wait>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
        (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <svc>
      more_env: []
      words: [{<svc>} {<-dx>} {<Id.Lit_ArrayLhsOpen 'svc['> <0-9> <Id.Lit_RBracket ']'>} {<'svc2/log'>}]
      redirects: []
      do_fork: T
    )
    (command.WhileUntil
      keyword: <Id.KW_Until until>
      cond: 
        (condition.Shell
          commands: [
            (command.AndOr
              children: [
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <svok>
                      more_env: []
                      words: [{<svok>} {<svc0>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <svok>
                      more_env: []
                      words: [{<svok>} {<svc1>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <svok>
                      more_env: []
                      words: [{<svok>} {<svc2>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <svok>
                      more_env: []
                      words: [{<svok>} {<'svc2/log'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <head>
      more_env: []
      words: [
        {<head>}
        {<-n>}
        {<1>}
        {<Id.Lit_ArrayLhsOpen 'svc['> <0-9> <Id.Lit_RBracket ']'> <'/output'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>} {<svscan.log>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-r>} {<svc0>} {<svc1>} {<svc2>} {<service>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- tai64n has the right format'>)}]
      redirects: []
      do_fork: T
    )
    (command.Pipeline
      children: [
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.CommandList
              children: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<ONE>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {<TWO>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
        (command.Simple
          blame_tok: <tai64n>
          more_env: []
          words: [{<tai64n>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [{<sed>} {(SQ <'s/[0-9a-f]/x/g'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(SQ <'--- tai64nlocal handles non-@ lines correctly'>)}]
      redirects: []
      do_fork: T
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.Pipeline
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {<one>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {<two>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  right: <Id.Right_Subshell _>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <tai64nlocal>
                  more_env: []
                  words: [{<tai64nlocal>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          terminator: <Id.Op_Semi _>
        )
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {($ Id.VSub_QMark '?')}]
          redirects: []
          do_fork: T
        )
      ]
    )
    (command.Simple blame_tok:<cd> more_env:[] words:[{<cd>} {<..>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-rf>} {<rts-tmp>}]
      redirects: []
      do_fork: T
    )
  ]
)