(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CURDIR)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>}))}
          spids: [84]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ECHO)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name ECHO>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<echo>})
              )
            }
          spids: [89]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:tmpfile)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<mktemp>} {<osreldate.XXXXXXXX>})
              )
            }
          spids: [97]
        )
      ]
    )
    (C {<trap>} {(DQ <'rm -f '> ($ Id.VSub_DollarName '$tmpfile'))} {<EXIT>})
    (C {(${ Id.VSub_Name ECHO)} {<creating>} {<osreldate.h>} {<from>} {<newvers.sh>})
    (C {<set>} {<Id.Lit_Other '+'> <e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VARS_ONLY)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [132]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<.>} 
          {
            (DQ 
              (braced_var_sub
                token: <Id.VSub_Name NEWVERS_SH>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonEquals ':='>
                    arg_word: 
                      {($ Id.VSub_DollarName '$CURDIR') <Id.Lit_Slash '/'> <..> <Id.Lit_Slash '/'> <sys> 
                        <Id.Lit_Slash '/'> <conf> <Id.Lit_Slash '/'> <newvers.sh>
                      }
                  )
              )
            )
          }
        )
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (C {<set>} {<-e>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$tmpfile')}
        )
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 187
              stdin_parts: [
                ($ Id.VSub_DollarName '$COPYRIGHT')
                <'\n'>
                <'#ifdef _KERNEL\n'>
                <'#error '>
                <Id.Right_DoubleQuote '"'>
                <'<osreldate.h> cannot be used in the kernel, use <sys/param.h>'>
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'#else\n'>
                <'#undef __FreeBSD_version\n'>
                <'#define __FreeBSD_version '>
                ($ Id.VSub_DollarName '$RELDATE')
                <'\n'>
                <'#endif\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (C {<chmod>} {<644>} {($ Id.VSub_DollarName '$tmpfile')})
    (C {<mv>} {<-f>} {($ Id.VSub_DollarName '$tmpfile')} {<osreldate.h>})
  ]
)