(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:iam)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<id>} {<-un>}))}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:myhome)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<grep>} {(DQ <'^'> (${ Id.VSub_Name iam) <':'>)} {<'/etc/passwd'>})
                        (C {<cut>} {<-d> <Id.Lit_Colon ':'>} {<-f6>})
                      ]
                      negated: F
                    )
                )
              )
            }
          spids: [19]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$iam'))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <guest>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'Error: you really don\'t want to run fixguest on this account.'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [50 69]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                      {($ Id.VSub_DollarName '$myhome') <'/..template'>} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [
                {<echo>}
                {(DQ ($ Id.VSub_Number '$0') <': no template directory found for rebuilding.'>)}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [89 104]
        )
      ]
    )
    (C {<cd>} {($ Id.VSub_DollarName '$myhome')})
    (C {<rm>} {<-rf>} {<Id.Lit_Star '*'>} 
      {
        (command_sub
          left_token: <Id.Left_DollarParen '$('>
          child: (C {<find>} {<.>} {<-name>} {(DQ <'.[a-zA-Z0-9]*'>)} {<-print>})
        )
      }
    )
    (C {<cp>} {<-Rp>} {<'..template/'> <Id.Lit_Star '*'>} {<.>})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)