(command.CommandList
  children: [
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name srcdir>
          suffix_op: (suffix_op.Unary tok:<Id.VTest_Equals '='> arg_word:{<.>})
        )
      }
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<.>} {(DQ ($ Id.VSub_DollarName '$srcdir') <'/init.sh'>)})
          terminator: <Id.Op_Semi _>
        )
        (C {<path_prepend_>} {<.>})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:too_big)
          op: assign_op.Equal
          rhs: {<99999999999999999999999999999999999999999999999999999999999999999999>}
          spids: [24]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:result)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [27]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<1>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [47]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<-1>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [63]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<1k>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [79]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {(${ Id.VSub_Name too_big) <h>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [98]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {($ Id.VSub_DollarName '$too_big')}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [114]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<x>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [130]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<9x>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [146]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<010>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [162]
            )
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{<test-xstrtoumax>} {<MiB>}]
          redirects: [
            (redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<out>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [178]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<solaris>})
                        (C {<tr>} {<-d>} {(SQ <'\\r'>)})
                        (command.Simple
                          words: [{<grep>} {<solais>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      negated: F
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:cr)
                  op: assign_op.Equal
                  rhs: {(SQ <'\\015'>)}
                  spids: [218]
                )
              ]
            )
          ]
          spids: [188 215]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:cr)
              op: assign_op.Equal
              rhs: {(SQ <'\\r'>)}
              spids: [226]
            )
          ]
        )
      ]
    )
    (command.Simple
      words: [{<tr>} {<-d>} {(DQ ($ Id.VSub_DollarName '$cr'))}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<out>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<k>})
      ]
      more_env: [(env_pair name:LC_ALL val:{<C>} spids:[237])]
      do_fork: T
    )
    (C {<mv>} {<k>} {<out>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<exp>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 291
              stdin_parts: [
                <'1->1 ()\n'>
                <'invalid X argument \'-1\'\n'>
                <'1k->1024 ()\n'>
                <'invalid suffix in X argument \''>
                (${ Id.VSub_Name too_big)
                <'h\'\n'>
                <'X argument \''>
                ($ Id.VSub_DollarName '$too_big')
                <'\' too large\n'>
                <'invalid X argument \'x\'\n'>
                <'invalid suffix in X argument \'9x\'\n'>
                <'010->8 ()\n'>
                <'MiB->1048576 ()\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<compare>} {<exp>} {<out>})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:result)
              op: assign_op.Equal
              rhs: {<1>}
              spids: [301]
            )
          ]
        )
      ]
    )
    (C {<Exit>} {($ Id.VSub_DollarName '$result')})
  ]
)