(CommandList
  children: [
    (C {(Lit_Other ':')} {(generate)} {(Assign_Local local)} {(host)} {(info)})
    (Case
      to_match: {($ VSub_Name '$RANDOM')}
      arms: [
        (case_arm
          pat_list: [{($ VSub_Name '$RANDOM')}]
          action: [
            (Sentence
              child: (C {(exec)} {(ksh)} {($ VSub_Number '$0')} {(DQ ($ VSub_At '$@'))})
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (SimpleCommand
                  words: [{(echo)} {(DQ ($ VSub_Number '$0') (': ksh required'))}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[116])]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(exit)} {(1)})
          ]
          spids: [95 96 124 16777215]
        )
      ]
      spids: [89 93 126]
    )
    (C {(integer)} {(Lit_VarLike 'cluster=') (5)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dir) op:Equal rhs:{(.)} spids:[133])]
      spids: [133]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:file) op:Equal rhs:{(SQ )} spids:[136])]
      spids: [136]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:heading) op:Equal rhs:{(1)} spids:[138])]
      spids: [138]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:list) op:Equal rhs:{(SQ )} spids:[141])]
      spids: [141]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:rsh) op:Equal rhs:{(rsh)} spids:[143])]
      spids: [143]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:timeout) op:Equal rhs:{(90)} spids:[146])]
      spids: [146]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(Lit_Other ':')} spids:[149])]
      spids: [149]
    )
    (While
      cond: [(C {(Lit_Other ':')})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Pound '$#')}
              arms: [
                (case_arm
                  pat_list: [{(0)}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [165 166 170 16777215]
                )
              ]
              spids: [158 162 173]
            )
            (Case
              to_match: {($ VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{(-) (Lit_Other '[') (frt) (Lit_Other ']')}]
                  action: [
                    (Case
                      to_match: {($ VSub_Pound '$#')}
                      arms: [
                        (case_arm
                          pat_list: [{(1)}]
                          action: [
                            (C {(set)} {(--)} {(SQ <'-?'>)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [195 196 210 16777215]
                        )
                      ]
                      spids: [188 192 213]
                    )
                    (Case
                      to_match: {($ VSub_Number '$1')}
                      arms: [
                        (case_arm
                          pat_list: [{(-f)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:file)
                                  op: Equal
                                  rhs: {($ VSub_Number '$2')}
                                  spids: [226]
                                )
                              ]
                              spids: [226]
                            )
                          ]
                          spids: [223 224 229 16777215]
                        )
                        (case_arm
                          pat_list: [{(-r)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rsh)
                                  op: Equal
                                  rhs: {($ VSub_Number '$2')}
                                  spids: [235]
                                )
                              ]
                              spids: [235]
                            )
                          ]
                          spids: [232 233 238 16777215]
                        )
                        (case_arm
                          pat_list: [{(-t)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:timeout)
                                  op: Equal
                                  rhs: {($ VSub_Number '$2')}
                                  spids: [244]
                                )
                              ]
                              spids: [244]
                            )
                          ]
                          spids: [241 242 247 16777215]
                        )
                      ]
                      spids: [216 220 250]
                    )
                    (C {(shift)})
                  ]
                  spids: [183 187 256 16777215]
                )
                (case_arm
                  pat_list: [{(-h)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:heading)
                          op: Equal
                          rhs: {(SQ )}
                          spids: [262]
                        )
                      ]
                      spids: [262]
                    )
                  ]
                  spids: [259 260 265 16777215]
                )
                (case_arm
                  pat_list: [{(-n)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:list) op:Equal rhs:{(1)} spids:[271])]
                      spids: [271]
                    )
                  ]
                  spids: [268 269 275 16777215]
                )
                (case_arm
                  pat_list: [{(-v)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:verbose)
                          op: Equal
                          rhs: {(SQ <'print -u2'>)}
                          spids: [281]
                        )
                      ]
                      spids: [281]
                    )
                  ]
                  spids: [278 279 287 16777215]
                )
                (case_arm
                  pat_list: [{(SQ <'-?'>)}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [291 293 298 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '[') (-) (Lit_Other '+') (Lit_Other ']') (Lit_Other '*')}]
                  action: [
                    (C {(print)} {(-u2)} 
                      {(DQ ($ VSub_Number '$0') (': ') ($ VSub_Number '$1') (': invalid option'))}
                    )
                    (C {(set)} {(--)} {(SQ <'-?'>)})
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [301 306 332 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [335 336 341 16777215]
                )
              ]
              spids: [176 180 344]
            )
            (C {(shift)})
          ]
          spids: [156 349]
        )
    )
    (Case
      to_match: {($ VSub_Number '$1')}
      arms: [
        (case_arm
          pat_list: [{(SQ <'-?'>)}]
          action: [
            (Sentence
              child: 
                (C {(print)} {(-u2)} 
                  {
                    (DQ ('Usage: ') ($ VSub_Number '$0') 
                      (' [-hnv] [-f share-file] [-r rsh-path] [-t timeout] [host ...]')
                    )
                  }
                )
              terminator: <Op_Semi ';'>
            )
            (C {(exit)} {(1)})
          ]
          spids: [358 360 377 16777215]
        )
      ]
      spids: [351 355 379]
    )
    (Case
      to_match: {($ VSub_Name '$file')}
      arms: [
        (case_arm
          pat_list: [{(DQ )}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ifs)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name IFS>
                        suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ <'\n'> <'\t '>)})
                        spids: [392 399]
                      )
                    }
                  spids: [391]
                )
              ]
              spids: [391]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(Lit_Other ':')} spids:[402])]
              spids: [402]
            )
            (C {(set)} {(DQ )} {($ VSub_Name '$PATH')} {(DQ (--))} {(DQ ($ VSub_At '$@'))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: {($ VSub_Name '$ifs')}
                  spids: [422]
                )
              ]
              spids: [422]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:f) op:Equal rhs:{(lib/cs/share)} spids:[426])]
              spids: [426]
            )
            (While
              cond: [(C {(Lit_Other ':')})]
              body: 
                (DoGroup
                  children: [
                    (C {(shift)})
                    (Case
                      to_match: {($ VSub_Number '$1')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                          spids: [16777215 449 453 16777215]
                        )
                        (case_arm
                          pat_list: [{(--)}]
                          action: [(ControlFlow token:<ControlFlow_Break break>)]
                          spids: [456 457 461 16777215]
                        )
                      ]
                      spids: [440 444 464]
                    )
                    (Case
                      to_match: {($ VSub_Name '$file')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          action: [
                            (AndOr
                              children: [
                                (C {(test)} {(-f)} 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Number 1>
                                      suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(bin)})
                                      spids: [482 486]
                                    ) ($ VSub_Name '$f')
                                  }
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:file)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Number 1>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_Percent
                                                arg_word: {(bin)}
                                              )
                                            spids: [492 496]
                                          ) ($ VSub_Name '$f')
                                        }
                                      spids: [491]
                                    )
                                  ]
                                  spids: [491]
                                )
                              ]
                              op_id: Op_DAmp
                            )
                          ]
                          spids: [16777215 476 499 16777215]
                        )
                      ]
                      spids: [467 471 502]
                    )
                  ]
                  spids: [435 505]
                )
            )
            (C {(shift)})
            (Case
              to_match: {($ VSub_Name '$file')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Sentence
                      child: 
                        (C {(print)} {(-u2)} {($ VSub_Number '$0') (Lit_Other ':')} 
                          {($ VSub_Name '$f') (Lit_Other ':')} {(not)} {(found)}
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 520 541 16777215]
                )
              ]
              spids: [511 515 544]
            )
          ]
          spids: [16777215 389 547 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [(C {(test)} {(KW_Bang '!')} {(-f)} {($ VSub_Name '$file')})]
                  action: [
                    (Sentence
                      child: 
                        (C {(print)} {(-u2)} 
                          {
                            (DQ ($ VSub_Number '$0') (': ') ($ VSub_Name '$file') 
                              (': cannot read share file')
                            )
                          }
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 563]
                )
              ]
              spids: [16777215 582]
            )
          ]
          spids: [549 550 585 16777215]
        )
      ]
      spids: [381 385 587]
    )
    (C {(print)} {(-u2)} 
      {
        (DQ ($ VSub_Number '$0') (': warning: ') ($ VSub_Name '$rsh') 
          (' may hang on some hosts -- monitor the progress with the -v option or ps ') ($ VSub_Dollar '$$')
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:server) op:Equal rhs:{(SQ )} spids:[601])]
      spids: [601]
    )
    (ForEach
      iter_name: host
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [(C {(egrep)} {(-v)} {(SQ <'^#'>)} {($ VSub_Name '$file')})]
              )
            left_token: <Left_CommandSub '$('>
            spids: [609 619]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$server')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:server)
                          op: Equal
                          rhs: {($ VSub_Name '$host')}
                          spids: [634]
                        )
                      ]
                      spids: [634]
                    )
                  ]
                  spids: [16777215 632 637 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:server)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$server') ('|') ($ VSub_Name '$host'))}
                          spids: [643]
                        )
                      ]
                      spids: [643]
                    )
                  ]
                  spids: [640 641 650 16777215]
                )
              ]
              spids: [623 627 653]
            )
          ]
          spids: [621 655]
        )
      spids: [608 16777215]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:hostname)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(package)} {(host)} {(name)})])
                left_token: <Left_CommandSub '$('>
                spids: [658 664]
              )
            }
          spids: [657]
        )
      ]
      spids: [657]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:hostname)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name hostname>
                suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')})
                spids: [667 671]
              )
            }
          spids: [666]
        )
      ]
      spids: [666]
    )
    (Case
      to_match: {($ VSub_Pound '$#')}
      arms: [
        (case_arm
          pat_list: [{(0)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:domain)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (BraceGroup
                                    children: [(C {(cat)} {(/etc/hosts)}) (C {(ypcat)} {(hosts)})]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [701]
                                      )
                                    ]
                                    spids: [686]
                                  )
                                  (C {(egrep)} 
                                    {
                                      (DQ ('[^#].*[ \t]') ($ VSub_Name '$hostname') ('(') 
                                        (EscapedLiteralPart
                                          token: <Lit_EscapedChar '\\$'>
                                        ) ('|[. \t])')
                                      )
                                    }
                                  )
                                  (C {(sed)} {(-e)} {(SQ <'1!d'>)} {(-e)} {(SQ <'s/^[^ \t]*//'>)} {(-e)} 
                                    {(SQ <'s/[^.]*.//'>)} {(-e)} {(SQ <'s/[ \t].*//'>)}
                                  )
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [683 747]
                      )
                    }
                  spids: [682]
                )
              ]
              spids: [682]
            )
            (C {(set)} {(--)} 
              {
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (BraceGroup
                              children: [
                                (C {(print)} {(DQ ($ VSub_Name '$hostname'))})
                                (C {(egrep)} {(-v)} {(SQ <'^#'>)} {($ VSub_Name '$file')})
                                (Pipeline
                                  children: [(C {(ruptime)}) (C {(fgrep)} {(-v)} {(SQ <'no hosts'>)})]
                                  negated: False
                                )
                                (Pipeline
                                  children: [
                                    (BraceGroup
                                      children: [
                                        (ForEach
                                          iter_name: i
                                          iter_words: [{(/etc/resolv.conf)} {(/usr/etc/resolv.conf)}]
                                          do_arg_iter: False
                                          body: 
                                            (DoGroup
                                              children: [
                                                (If
                                                  arms: [
                                                    (if_arm
                                                      cond: [(C {(test)} {(-f)} {($ VSub_Name '$i')})]
                                                      action: [
                                                        (Pipeline
                                                          children: [
                                                            (C {(echo)} 
                                                              {
                                                                (DQ ('ls -t A ') 
                                                                  (CommandSubPart
                                                                    command_list: 
                                                                      (CommandList
                                                                        children: [
                                                                          (C {(sed)} {(-e)} 
                                                                            {(SQ <'/^domain/!d'>)} {(-e)} {(SQ <'s/.*[ ][ \t]*//'>)} {($ VSub_Name '$i')}
                                                                          )
                                                                        ]
                                                                      )
                                                                    left_token: 
                                                                      <Left_CommandSub '$('>
                                                                    spids: [822 838]
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (C {(nslookup)})
                                                          ]
                                                          negated: False
                                                        )
                                                        (ControlFlow
                                                          token: <ControlFlow_Break break>
                                                        )
                                                      ]
                                                      spids: [16777215 816]
                                                    )
                                                  ]
                                                  spids: [16777215 849]
                                                )
                                              ]
                                              spids: [805 852]
                                            )
                                          spids: [799 16777215]
                                        )
                                        (C {(cat)} {(/etc/hosts)})
                                        (C {(ypcat)} {(hosts)})
                                      ]
                                      spids: [791]
                                    )
                                    (C {(fgrep)} {(DQ (.) ($ VSub_Name '$domain'))})
                                    (C {(awk)} {(SQ <'{print $2}'>)})
                                  ]
                                  negated: False
                                )
                              ]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [889]
                                )
                              ]
                              spids: [757]
                            )
                            (C {(sed)} {(-e)} {(SQ <'s/[. \t].*//'>)} {(-e)} 
                              {(SQ <'/^[a-zA-Z].*[a-zA-Z0-9]$/!d'>)}
                            )
                            (C {(sort)} {(-u)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_CommandSub '$('>
                  spids: [754 917]
                )
              }
            )
            (Case
              to_match: {($ VSub_Name '$list')}
              arms: [
                (case_arm
                  pat_list: [{(Lit_Other '?') (Lit_Other '*')}]
                  action: [(C {(print)} {(Lit_VarLike 'domain=') ($ VSub_Name '$domain')})]
                  spids: [927 929 937 16777215]
                )
              ]
              spids: [920 924 940]
            )
          ]
          spids: [679 680 943 16777215]
        )
      ]
      spids: [673 677 945]
    )
    (Case
      to_match: {($ VSub_Name '$list')}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '?') (Lit_Other '*')}]
          action: [
            (Sentence
              child: (C {(print)} {(Lit_VarLike 'hosts=') (SQ <'"'>) ($ VSub_Star '$*') (SQ <'"'>)})
              terminator: <Op_Semi ';'>
            )
            (C {(exit)})
          ]
          spids: [953 955 971 16777215]
        )
      ]
      spids: [947 951 973]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:hosts) op:Equal rhs:{(SQ )} spids:[975])]
      spids: [975]
    )
    (Pipeline
      children: [
        (ForEach
          iter_name: host
          do_arg_iter: True
          body: 
            (DoGroup
              children: [
                (Case
                  to_match: {($ VSub_Name '$host')}
                  arms: [
                    (case_arm
                      pat_list: [{(Assign_Local local)} {(localhost)}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:host)
                              op: Equal
                              rhs: {($ VSub_Name '$hostname')}
                              spids: [995]
                            )
                          ]
                          spids: [995]
                        )
                      ]
                      spids: [990 993 998 16777215]
                    )
                  ]
                  spids: [983 987 1001]
                )
                (Case
                  to_match: {(DQ (' ') ($ VSub_Name '$hosts') (' '))}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Lit_Other '*') (DQ (' ') ($ VSub_Name '$host') (' ')) (Lit_Other '*')}
                      ]
                      action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                      spids: [1015 1022 1026 16777215]
                    )
                  ]
                  spids: [1004 1012 1029]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:hosts)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name '$hosts') (' ') ($ VSub_Name '$host'))}
                      spids: [1032]
                    )
                  ]
                  spids: [1032]
                )
                (C {($ VSub_Name '$verbose')} {(-n)} {(DQ ($ VSub_Name '$host') (' '))})
                (Case
                  to_match: {($ VSub_Name '$host')}
                  arms: [
                    (case_arm
                      pat_list: [{($ VSub_Name '$hostname')}]
                      action: [(C {(package)} {(host)} {(name)} {(type)} {(cpu)} {(rating)})]
                      spids: [1057 1058 1074 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (SimpleCommand
                                  words: [{(ping)} {(-c)} {(1)} {(-w)} {(4)} {($ VSub_Name '$host')}]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                      spids: [1094]
                                    )
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 2
                                      arg_word: {(1)}
                                      spids: [1097]
                                    )
                                  ]
                                )
                              ]
                              action: [
                                (Sentence
                                  child: 
                                    (C {($ VSub_Name '$rsh')} {($ VSub_Name '$host')} {(bin/package)} 
                                      {(host)} {(name)} {(type)} {(cpu)} {(rating)}
                                    )
                                  terminator: <Op_Amp '&'>
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:info)
                                      op: Equal
                                      rhs: {($ VSub_Bang '$!')}
                                      spids: [1122]
                                    )
                                  ]
                                  spids: [1122]
                                )
                                (Sentence
                                  child: 
                                    (BraceGroup
                                      children: [
                                        (C {(sleep)} {($ VSub_Name '$timeout')})
                                        (C {(kill)} {(-9)} {($ VSub_Name '$info')})
                                      ]
                                      spids: [1126]
                                    )
                                  terminator: <Op_Amp '&'>
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:time)
                                      op: Equal
                                      rhs: {($ VSub_Bang '$!')}
                                      spids: [1146]
                                    )
                                  ]
                                  spids: [1146]
                                )
                                (C {(wait)} {($ VSub_Name '$info')})
                                (C {(kill)} {(-9)} {($ VSub_Name '$time')})
                              ]
                              spids: [16777215 1101]
                            )
                          ]
                          spids: [16777215 1162]
                        )
                      ]
                      spids: [1077 1078 1165 16777215]
                    )
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1170])]
                  spids: [1050 1054 1168]
                )
              ]
              spids: [981 1173]
            )
          spids: [16777215 16777215]
        )
        (While
          cond: [(C {(read)} {(host)} {(type)} {(cpu)} {(rating)})]
          body: 
            (DoGroup
              children: [
                (C {($ VSub_Name '$verbose')} {(Lit_VarLike 'type=') ($ VSub_Name '$type')} 
                  {(Lit_VarLike 'cpu=') ($ VSub_Name '$cpu')} {(Lit_VarLike 'rating=') ($ VSub_Name '$rating')}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:host)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Name host>
                            suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('.*')})
                            spids: [1204 1208]
                          )
                        }
                      spids: [1203]
                    )
                  ]
                  spids: [1203]
                )
                (C {(eval)} 
                  {
                    (DQ ("case '") ($ VSub_Name '$host') ("' in\n") ('\t') ($ VSub_Name '$server') 
                      (')\tidle= ;;\n') ('\t*)\t\tidle=15m ;;\n') ('\tesac')
                    )
                  }
                )
                (C {(print)} 
                  {($ VSub_Name '$host') (DQ ('\t')) (Lit_VarLike 'type=') ($ VSub_Name '$type') 
                    (DQ ('\t')) (${ VSub_Name rating) 
                    (BracedVarSub
                      token: <VSub_Name idle>
                      suffix_op: 
                        (StringUnary
                          op_id: VTest_ColonPlus
                          arg_word: {(DQ ('\tidle=') ($ VSub_Name '$idle'))}
                        )
                      spids: [1239 1246]
                    ) 
                    (BracedVarSub
                      token: <VSub_Name cpu>
                      suffix_op: 
                        (StringUnary
                          op_id: VTest_ColonPlus
                          arg_word: {(DQ ('\tcpu=') ($ VSub_Name '$cpu'))}
                        )
                      spids: [1247 1254]
                    )
                  }
                )
              ]
              spids: [1189 1256]
            )
        )
        (C {(sort)} {(-b)} {(Lit_Other '+') (2n)} {(-3)})
        (BraceGroup
          children: [
            (C {(integer)} {(v)} {(c)} {(d)} {(i)} {(j)} {(k)} {(n)})
            (DParen
              child: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:n)
                  right: (ArithWord w:{(Lit_Digits 0)})
                )
            )
            (While
              cond: [(C {(read)} {(host)} {(type)} {(rate)} {(attr)})]
              body: 
                (DoGroup
                  children: [
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:n)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:n)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                    (C {(h) (Lit_Other '[') (n) (Lit_Other ']') (Lit_Other '=') ($ VSub_Name '$host')})
                    (C {(t) (Lit_Other '[') (n) (Lit_Other ']') (Lit_Other '=') ($ VSub_Name '$type')})
                    (C {(v) (Lit_Other '[') (n) (Lit_Other ']') (Lit_Other '=') ($ VSub_Name '$rate')})
                    (C {(a) (Lit_Other '[') (n) (Lit_Other ']') (Lit_Other '=') ($ VSub_Name '$attr')})
                  ]
                  spids: [1312 1356]
                )
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:c) op:Equal rhs:{(1)} spids:[1359])]
              spids: [1359]
            )
            (While
              cond: [(DParen child:(ArithVarRef name:c))]
              body: 
                (DoGroup
                  children: [
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:c)
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                    (While
                      cond: [
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithVarRef name:i)
                              right: (ArithVarRef name:n)
                            )
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:d)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Minus
                                      left: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:v)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: (ArithVarRef name:i)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                        )
                                      right: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:v)
                                          right: (ArithVarRef name:i)
                                        )
                                    )
                                )
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DAmp
                                          left: 
                                            (ArithBinary
                                              op_id: Arith_Great
                                              left: (ArithVarRef name:d)
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Less
                                              left: (ArithVarRef name:d)
                                              right: (ArithVarRef name:cluster)
                                            )
                                        )
                                    )
                                  ]
                                  action: [
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsName name:d)
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Slash
                                              left: (ArithVarRef name:d)
                                              right: (ArithWord w:{(Lit_Digits 2)})
                                            )
                                        )
                                    )
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: (LhsIndexedName name:v index:(ArithVarRef name:i))
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Plus
                                              left: 
                                                (ArithBinary
                                                  op_id: Arith_LBracket
                                                  left: (ArithVarRef name:v)
                                                  right: (ArithVarRef name:i)
                                                )
                                              right: (ArithVarRef name:d)
                                            )
                                        )
                                    )
                                    (DParen
                                      child: 
                                        (BinaryAssign
                                          op_id: Arith_Equal
                                          left: 
                                            (LhsIndexedName
                                              name: v
                                              index: 
                                                (ArithBinary
                                                  op_id: Arith_Plus
                                                  left: (ArithVarRef name:i)
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Minus
                                              left: 
                                                (ArithBinary
                                                  op_id: Arith_LBracket
                                                  left: (ArithVarRef name:v)
                                                  right: 
                                                    (ArithBinary
                                                      op_id: Arith_Plus
                                                      left: (ArithVarRef name:i)
                                                      right: (ArithWord w:{(Lit_Digits 1)})
                                                    )
                                                )
                                              right: (ArithVarRef name:d)
                                            )
                                        )
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:c)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [1481]
                                        )
                                      ]
                                      spids: [1481]
                                    )
                                  ]
                                  spids: [16777215 1433]
                                )
                              ]
                              spids: [16777215 1485]
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:i)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:i)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                            )
                          ]
                          spids: [1399 1498]
                        )
                    )
                  ]
                  spids: [1371 1501]
                )
            )
            (DParen
              child: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 1)})
                )
            )
            (While
              cond: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_LessEqual
                      left: (ArithVarRef name:i)
                      right: (ArithVarRef name:n)
                    )
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:c)
                          right: 
                            (ArithBinary
                              op_id: Arith_LBracket
                              left: (ArithVarRef name:v)
                              right: (ArithVarRef name:i)
                            )
                        )
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:j)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:i)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:k)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                    (While
                      cond: [
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_LessEqual
                              left: (ArithVarRef name:j)
                              right: (ArithVarRef name:n)
                            )
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DPipe
                                          left: 
                                            (ArithBinary
                                              op_id: Arith_Great
                                              left: 
                                                (ArithBinary
                                                  op_id: Arith_Minus
                                                  left: 
                                                    (ArithBinary
                                                      op_id: Arith_LBracket
                                                      left: (ArithVarRef name:v)
                                                      right: (ArithVarRef name:j)
                                                    )
                                                  right: 
                                                    (ArithBinary
                                                      op_id: Arith_LBracket
                                                      left: (ArithVarRef name:v)
                                                      right: 
                                                        (ArithBinary
                                                          op_id: Arith_Minus
                                                          left: (ArithVarRef name:j)
                                                          right: (ArithWord w:{(Lit_Digits 1)})
                                                        )
                                                    )
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          right: 
                                            (ArithBinary
                                              op_id: Arith_Great
                                              left: 
                                                (ArithBinary
                                                  op_id: Arith_Minus
                                                  left: 
                                                    (ArithBinary
                                                      op_id: Arith_LBracket
                                                      left: (ArithVarRef name:v)
                                                      right: (ArithVarRef name:j)
                                                    )
                                                  right: 
                                                    (ArithBinary
                                                      op_id: Arith_LBracket
                                                      left: (ArithVarRef name:v)
                                                      right: (ArithVarRef name:i)
                                                    )
                                                )
                                              right: (ArithVarRef name:cluster)
                                            )
                                        )
                                    )
                                  ]
                                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                                  spids: [16777215 1601]
                                )
                              ]
                              spids: [16777215 1606]
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:c)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:c)
                                      right: 
                                        (ArithBinary
                                          op_id: Arith_LBracket
                                          left: (ArithVarRef name:v)
                                          right: (ArithVarRef name:j)
                                        )
                                    )
                                )
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:k)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:k)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:j)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:j)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                            )
                          ]
                          spids: [1563 1642]
                        )
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:c)
                          right: 
                            (ArithBinary
                              op_id: Arith_Slash
                              left: (ArithVarRef name:c)
                              right: (ArithVarRef name:k)
                            )
                        )
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:d)
                          right: 
                            (ArithBinary
                              op_id: Arith_Percent
                              left: (ArithVarRef name:c)
                              right: (ArithWord w:{(Lit_Digits 10)})
                            )
                        )
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:c)
                          right: 
                            (ArithBinary
                              op_id: Arith_Minus
                              left: (ArithVarRef name:c)
                              right: (ArithVarRef name:d)
                            )
                        )
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_Great
                                  left: (ArithVarRef name:d)
                                  right: (ArithWord w:{(Lit_Digits 6)})
                                )
                            )
                          ]
                          action: [
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:c)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:c)
                                      right: (ArithWord w:{(Lit_Digits 10)})
                                    )
                                )
                            )
                          ]
                          spids: [16777215 1685]
                        )
                        (if_arm
                          cond: [
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_Great
                                  left: (ArithVarRef name:d)
                                  right: (ArithWord w:{(Lit_Digits 3)})
                                )
                            )
                          ]
                          action: [
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:c)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:c)
                                      right: (ArithWord w:{(Lit_Digits 5)})
                                    )
                                )
                            )
                          ]
                          spids: [1697 1707]
                        )
                      ]
                      spids: [16777215 1719]
                    )
                    (While
                      cond: [
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Less
                              left: (ArithVarRef name:i)
                              right: (ArithVarRef name:j)
                            )
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsIndexedName name:v index:(ArithVarRef name:i))
                                  right: (ArithVarRef name:c)
                                )
                            )
                            (DParen
                              child: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:i)
                                  right: 
                                    (ArithBinary
                                      op_id: Arith_Plus
                                      left: (ArithVarRef name:i)
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                            )
                          ]
                          spids: [1732 1755]
                        )
                    )
                  ]
                  spids: [1522 1758]
                )
            )
            (DParen
              child: 
                (BinaryAssign
                  op_id: Arith_Equal
                  left: (LhsName name:i)
                  right: (ArithWord w:{(Lit_Digits 1)})
                )
            )
            (While
              cond: [
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_LessEqual
                      left: (ArithVarRef name:i)
                      right: (ArithVarRef name:n)
                    )
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:rate)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name v>
                                bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                                spids: [1782 1787]
                              )
                            }
                          spids: [1781]
                        )
                      ]
                      spids: [1781]
                    )
                    (C {(print)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name h>
                          bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                          spids: [1792 1797]
                        )
                      } 
                      {
                        (BracedVarSub
                          token: <VSub_Name t>
                          bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                          spids: [1799 1804]
                        )
                      } 
                      {(Lit_VarLike 'rating=') 
                        (BracedVarSub
                          token: <VSub_Name v>
                          bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                          spids: [1807 1812]
                        ) 
                        (DQ ('\t') 
                          (BracedVarSub
                            token: <VSub_Name a>
                            bracket_op: (ArrayIndex expr:(ArithVarRef name:i))
                            spids: [1815 1820]
                          )
                        )
                      }
                    )
                    (DParen
                      child: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: 
                            (ArithBinary
                              op_id: Arith_Plus
                              left: (ArithVarRef name:i)
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                        )
                    )
                  ]
                  spids: [1779 1834]
                )
            )
          ]
          spids: [1271]
        )
        (C {(sort)} {(-b)} {(Lit_Other '+') (1)} {(-2)} {(Lit_Other '+') (2.7n)} {(-3)} 
          {(Lit_Other '+') (0)} {(-1)}
        )
        (While
          cond: [(C {(read)} {(host)} {(type)} {(attr)})]
          body: 
            (DoGroup
              children: [
                (Case
                  to_match: {($ VSub_Name '$heading')}
                  arms: [
                    (case_arm
                      pat_list: [{(1)}]
                      action: [
                        (C {(print)} {(SQ <'#'>)})
                        (C {(print)} {(SQ <'# local host attributes'>)})
                        (C {(print)} {(SQ <'#'>)})
                        (C {(print)})
                        (C {(print)} {(SQ <'local\t\tbusy=2m\t\tpool=9'>)})
                        (C {(print)})
                      ]
                      spids: [1880 1881 1917 16777215]
                    )
                    (case_arm
                      pat_list: [{(SQ )} {($ VSub_Name '$type')}]
                      spids: [16777215 1924 1927 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [(C {(print)})]
                      spids: [1930 1931 1936 16777215]
                    )
                  ]
                  spids: [1873 1877 1939]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:heading)
                      op: Equal
                      rhs: {($ VSub_Name '$type')}
                      spids: [1942]
                    )
                  ]
                  spids: [1942]
                )
                (Case
                  to_match: {($ VSub_Name '$host')}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Lit_Other '?') (Lit_Other '?') (Lit_Other '?') (Lit_Other '?') 
                          (Lit_Other '?') (Lit_Other '?') (Lit_Other '?') (Lit_Other '?') (Lit_Other '*')
                        }
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:tab1)
                              op: Equal
                              rhs: {(DQ ('\t'))}
                              spids: [1965]
                            )
                          ]
                          spids: [1965]
                        )
                      ]
                      spids: [1953 1962 1971 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:tab1)
                              op: Equal
                              rhs: {(DQ ('\t\t'))}
                              spids: [1977]
                            )
                          ]
                          spids: [1977]
                        )
                      ]
                      spids: [1974 1975 1983 16777215]
                    )
                  ]
                  spids: [1946 1950 1986]
                )
                (Case
                  to_match: {($ VSub_Name '$type')}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Lit_Other '?') (Lit_Other '?') (Lit_Other '?') (Lit_Other '?') 
                          (Lit_Other '?') (Lit_Other '?') (Lit_Other '?') (Lit_Other '?') (Lit_Other '*')
                        }
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:tab2)
                              op: Equal
                              rhs: {(DQ ('\t'))}
                              spids: [2008]
                            )
                          ]
                          spids: [2008]
                        )
                      ]
                      spids: [1996 2005 2014 16777215]
                    )
                    (case_arm
                      pat_list: [{(Lit_Other '*')}]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:tab2)
                              op: Equal
                              rhs: {(DQ ('\t\t'))}
                              spids: [2020]
                            )
                          ]
                          spids: [2020]
                        )
                      ]
                      spids: [2017 2018 2026 16777215]
                    )
                  ]
                  spids: [1989 1993 2029]
                )
                (C {(print)} 
                  {($ VSub_Name '$host') (DQ ($ VSub_Name '$tab1')) ($ VSub_Name '$type') 
                    (DQ ($ VSub_Name '$tab2') ($ VSub_Name '$attr'))
                  }
                )
              ]
              spids: [1871 2044]
            )
        )
      ]
      negated: False
    )
  ]
)