(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-eq)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(SQ <'usage: shar file ...'>)}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[119])]
            )
            (C {(exit)} {(64)})
          ]
          spids: [-1 110]
        )
      ]
      spids: [-1 130]
    )
    (ForEach
      iter_name: i
      do_arg_iter: True
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} 
                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\('>)} {(-d)} {($ VSub_Name '$i')} {(-o)} {(-r)} {($ VSub_Name '$i')} 
                          {(EscapedLiteralPart token:<Lit_EscapedChar '\\)'>)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_Name '$i') (' inaccessible or not exist'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:1 arg_word:{(2)} spids:[173])]
                    )
                    (C {(exit)} {(66)})
                  ]
                  spids: [-1 163]
                )
              ]
              spids: [-1 185]
            )
          ]
          spids: [137 187]
        )
      spids: [-1 -1]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('# This is a shell archive.  Save it in a file, remove anything before\n') 
                ('# this line, and then unpack it by entering ') (Right_DoubleQuote '"') ('sh file') (Right_DoubleQuote '"') ('.  Note, it may\n') 
                ('# create directories; files and directories will be owned by you and\n') ('# have default permissions.\n') ('#\n') ('# This archive contains:\n') ('#\n')
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [192]
        )
      ]
    )
    (ForEach
      iter_name: i
      do_arg_iter: True
      body: (DoGroup children:[(C {(echo)} {(DQ ('#\t') ($ VSub_Name '$i'))})] spids:[213223])
      spids: [-1 -1]
    )
    (C {(echo)} {(DQ ('#'))})
    (ForEach
      iter_name: i
      do_arg_iter: True
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-d)} {($ VSub_Name '$i')} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('echo c - ') ($ VSub_Name '$i'))})
                    (C {(echo)} {(DQ ('mkdir -p ') ($ VSub_Name '$i') (' > /dev/null 2>&1'))})
                  ]
                  spids: [-1 251]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:md5sum)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (Pipeline
                                    children: [(C {(echo)} {(-n)} {($ VSub_Name '$i')}) (C {(md5)})]
                                    negated: False
                                  )
                                ]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [275 285]
                          )
                        }
                      spids: [274]
                    )
                  ]
                  spids: [274]
                )
                (C {(echo)} {(DQ ('echo x - ') ($ VSub_Name '$i'))})
                (C {(echo)} 
                  {
                    (DQ ("sed 's/^X//' >") ($ VSub_Name '$i') (" << '") ($ VSub_Name '$md5sum') ("'"))
                  }
                )
                (AndOr
                  children: [(C {(sed)} {(SQ <'s/^/X/'>)} {($ VSub_Name '$i')}) (C {(exit)})]
                  op_id: Op_DPipe
                )
                (C {(echo)} {(DQ ($ VSub_Name '$md5sum'))})
              ]
              spids: [271 327]
            )
          ]
          spids: [237 329]
        )
      spids: [-1 -1]
    )
    (C {(echo)} {(exit)})
    (C {(echo)} {(DQ )})
    (C {(exit)} {(0)})
  ]
)