(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName '$BOOTSTRAP_HTTP_PROXY')}
                                )
                            )
                        )
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName '$BOOTSTRAP_HTTPS_PROXY')}
                                )
                            )
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'Testing configured proxies...'>)})
            (C {<source>} 
              {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/shared/shared_proxy_setup.sh'>}
            )
          ]
          spids: [11 37]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REQUIRED_VARS)
          op: assign_op.Equal
          rhs: 
            {(sh_array_literal left:<Id.Op_LParen _> words:[{<BOOTSTRAP_CACHE_DIR>} {<REPO_ROOT>}])}
          spids: [55]
        )
      ]
    )
    (C {<check_for_envvars>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name REQUIRED_VARS>
          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
        )
      }
    )
    (C {<source>} {($ Id.VSub_DollarName '$REPO_ROOT') <'/bootstrap/config/build_bins_versions.sh'>})
    (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR')})
    (command.ShFunction
      name: download_file
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FILE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [103]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:URL)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [107]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: 
                                        {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                          ($ Id.VSub_DollarName '$FILE')
                                        }
                                    )
                                  right: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: 
                                            {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                              (${ Id.VSub_Name FILE) <_downloaded>
                                            }
                                        )
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<rm>} {<-f>} 
                      {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                        ($ Id.VSub_DollarName '$FILE')
                      }
                    )
                  ]
                  spids: [116 142]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: 
                                            {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                              ($ Id.VSub_DollarName '$FILE')
                                            }
                                        )
                                    )
                                  right: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: 
                                            {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                              (${ Id.VSub_Name FILE) <_downloaded>
                                            }
                                        )
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {($ Id.VSub_DollarName '$FILE')})
                    (C {<rm>} {<-f>} 
                      {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                        ($ Id.VSub_DollarName '$FILE')
                      }
                    )
                    (C {<curl>} {<-L>} {<--progress-bar>} {<-o>} 
                      {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                        ($ Id.VSub_DollarName '$FILE')
                      } {($ Id.VSub_DollarName '$URL')}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {($ Id.VSub_QMark '$?')}
                                          right: {<0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<echo>} 
                              {
                                (DQ <'Received error when attempting to download from '> 
                                  (${ Id.VSub_Name URL) <.>
                                )
                              }
                            )
                          ]
                          spids: [218 231]
                        )
                      ]
                    )
                    (C {<touch>} 
                      {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> (${ Id.VSub_Name FILE) 
                        <_downloaded>
                      }
                    )
                  ]
                  spids: [158 186]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: cleanup_cookbook
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COOKBOOK)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [276]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:VERSION_TO_KEEP)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [280]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<find>} {(${ Id.VSub_Name BOOTSTRAP_CACHE_DIR) <'/cookbooks/'>} {<-name>} 
                  {(${ Id.VSub_Name COOKBOOK) <-> 
                    (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.tar.gz>
                  } {<-and>} {<-not>} {<-name>} {(${ Id.VSub_Name COOKBOOK) <-> (${ Id.VSub_Name VERSION_TO_KEEP) <.tar.gz>} 
                  {<-delete>}
                )
                (C {<true>})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<find>} {(${ Id.VSub_Name BOOTSTRAP_CACHE_DIR) <'/cookbooks/'>} {<-name>} 
                  {(${ Id.VSub_Name COOKBOOK) <-> 
                    (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.tar.gz_downloaded>
                  } {<-and>} {<-not>} {<-name>} 
                  {(${ Id.VSub_Name COOKBOOK) <-> (${ Id.VSub_Name VERSION_TO_KEEP) 
                    <.tar.gz_downloaded>
                  } {<-delete>}
                )
                (C {<true>})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: download_cookbook
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COOKBOOK)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [377]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:VERSION_TO_GET)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [381]
                )
              ]
            )
            (C {<download_file>} 
              {<'cookbooks/'> (${ Id.VSub_Name COOKBOOK) <-> (${ Id.VSub_Name VERSION_TO_GET) <.tar.gz>} 
              {<http> <Id.Lit_Colon ':'> <'//cookbooks.opscode.com/api/v1/cookbooks/'> 
                (${ Id.VSub_Name COOKBOOK) <'/versions/'> (${ Id.VSub_Name VERSION_TO_GET) <'/download'>
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: cleanup_and_download_cookbook
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COOKBOOK)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [423]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TARGET_VERSION)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [427]
                )
              ]
            )
            (C {<cleanup_cookbook>} {(${ Id.VSub_Name COOKBOOK)} {(${ Id.VSub_Name TARGET_VERSION)})
            (C {<download_cookbook>} {(${ Id.VSub_Name COOKBOOK)} {(${ Id.VSub_Name TARGET_VERSION)})
          ]
        )
    )
    (command.ShFunction
      name: clone_repo
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:URL)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [466]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DIR)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [470]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:VER)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [474]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_d
                                  child: 
                                    {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                      ($ Id.VSub_DollarName '$DIR') <'/.git'>
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.Pipeline
                          children: [
                            (C {<git>} {<-C>} 
                              {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                ($ Id.VSub_DollarName '$DIR')
                              } {<log>} {<--pretty> <Id.Lit_Equals '='> <format> <Id.Lit_Colon ':'> (SQ <'%H'>)}
                            )
                            (C {<grep>} {<-q>} {($ Id.VSub_DollarName '$VER')})
                          ]
                          negated: F
                        )
                        (C {<git>} {<-C>} 
                          {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                            ($ Id.VSub_DollarName '$DIR')
                          } {<pull>}
                        )
                      ]
                    )
                  ]
                  spids: [479 493]
                )
              ]
              else_action: [
                (C {<git>} {<clone>} {($ Id.VSub_DollarName '$URL')} 
                  {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> ($ Id.VSub_DollarName '$DIR')}
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ROM)
          op: assign_op.Equal
          rhs: {<gpxe-1.0.1-80861004.rom>}
          spids: [564]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: 
                                {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                  ($ Id.VSub_DollarName '$ROM')
                                }
                            )
                          right: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_f
                                  child: 
                                    {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                      (${ Id.VSub_Name ROM) <_downloaded>
                                    }
                                )
                            )
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> ($ Id.VSub_DollarName '$ROM')}
            )
          ]
          spids: [567 593]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.LogicalAnd
                          left: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_f
                                  child: 
                                    {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                      ($ Id.VSub_DollarName '$ROM')
                                    }
                                )
                            )
                          right: 
                            (bool_expr.LogicalNot
                              child: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_f
                                  child: 
                                    {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> 
                                      (${ Id.VSub_Name ROM) <_downloaded>
                                    }
                                )
                            )
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {($ Id.VSub_DollarName '$ROM')})
            (C {<rm>} {<-f>} 
              {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> ($ Id.VSub_DollarName '$ROM')}
            )
            (C {<curl>} {<-L>} {<--progress-bar>} {<-o>} 
              {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> ($ Id.VSub_DollarName '$ROM')} {(DQ <'http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php'>)} {<-H>} 
              {(DQ <'Origin: http://rom-o-matic.net'>)} {<-H>} {(DQ <'Host: rom-o-matic.net'>)} {<-H>} {(DQ <'Content-Type: application/x-www-form-urlencoded'>)} 
              {<-H>} {(DQ <'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'>)} {<-H>} 
              {(DQ <'Referer: http://rom-o-matic.net/gpxe/gpxe-1.0.1/contrib/rom-o-matic/build.php'>)} {<-H>} {(DQ <'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3'>)} {<--data>} 
              {
                (DQ 
                  <
'version=1.0.1&use_flags=1&ofmt=ROM+binary+%28flashable%29+image+%28.rom%29&nic=all-drivers&pci_vendor_code=8086&pci_device_code=1004&PRODUCT_NAME=&PRODUCT_SHORT_NAME=gPXE&CONSOLE_PCBIOS=on&BANNER_TIMEOUT=20&NET_PROTO_IPV4=on&COMCONSOLE=0x3F8&COMSPEED=115200&COMDATA=8&COMPARITY=0&COMSTOP=1&DOWNLOAD_PROTO_TFTP=on&DNS_RESOLVER=on&NMB_RESOLVER=off&IMAGE_ELF=on&IMAGE_NBI=on&IMAGE_MULTIBOOT=on&IMAGE_PXE=on&IMAGE_SCRIPT=on&IMAGE_BZIMAGE=on&IMAGE_COMBOOT=on&AUTOBOOT_CMD=on&NVO_CMD=on&CONFIG_CMD=on&IFMGMT_CMD=on&IWMGMT_CMD=on&ROUTE_CMD=on&IMAGE_CMD=on&DHCP_CMD=on&SANBOOT_CMD=on&LOGIN_CMD=on&embedded_script=&A=Get+Image'
                  >
                )
              }
            )
            (C {<touch>} 
              {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/'> (${ Id.VSub_Name ROM) <_downloaded>}
            )
          ]
          spids: [606 634]
        )
      ]
    )
    (C {<download_file>} {<ubuntu-14.04-mini.iso>} 
      {<http> <Id.Lit_Colon ':'> 
        <
'//archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/mini.iso'
        >
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VBOX_VERSION)
          op: assign_op.Equal
          rhs: {<5.0.10>}
          spids: [737]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VBOX_ADDITIONS)
          op: assign_op.Equal
          rhs: {<VBoxGuestAdditions_> ($ Id.VSub_DollarName '$VBOX_VERSION') <.iso>}
          spids: [740]
        )
      ]
    )
    (C {<download_file>} {($ Id.VSub_DollarName '$VBOX_ADDITIONS')} 
      {<http> <Id.Lit_Colon ':'> <'//download.virtualbox.org/virtualbox/'> 
        ($ Id.VSub_DollarName '$VBOX_VERSION') <'/'> ($ Id.VSub_DollarName '$VBOX_ADDITIONS')
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BOX)
          op: assign_op.Equal
          rhs: {<trusty-server-cloudimg-amd64-vagrant-disk1.box>}
          spids: [760]
        )
      ]
    )
    (C {<download_file>} {($ Id.VSub_DollarName '$BOX')} 
      {<http> <Id.Lit_Colon ':'> <'//cloud-images.ubuntu.com/vagrant/trusty/current/'> 
        ($ Id.VSub_DollarName '$BOX')
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHEF_CLIENT_DEB)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name CHEF_CLIENT_DEB>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonHyphen ':-'>
                    arg_word: {<chef_12.9.41-1_amd64.deb>}
                  )
              )
            }
          spids: [776]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CHEF_SERVER_DEB)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name CHEF_SERVER_DEB>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonHyphen ':-'>
                    arg_word: {<chef-server-core_12.6.0-1_amd64.deb>}
                  )
              )
            }
          spids: [783]
        )
      ]
    )
    (C {<download_file>} {($ Id.VSub_DollarName '$CHEF_CLIENT_DEB')} 
      {<https> <Id.Lit_Colon ':'> <'//packages.chef.io/stable/ubuntu/10.04/'> 
        ($ Id.VSub_DollarName '$CHEF_CLIENT_DEB')
      }
    )
    (C {<download_file>} {($ Id.VSub_DollarName '$CHEF_SERVER_DEB')} 
      {<https> <Id.Lit_Colon ':'> <'//packages.chef.io/stable/ubuntu/14.04/'> 
        ($ Id.VSub_DollarName '$CHEF_SERVER_DEB')
      }
    )
    (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/cookbooks'>})
    (C {<cleanup_and_download_cookbook>} {<apt>} {(${ Id.VSub_Name VER_APT_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<chef-client>} {(${ Id.VSub_Name VER_CHEF_CLIENT_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<chef_handler>} {(${ Id.VSub_Name VER_CHEF_HANDLER_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<concat>} {(${ Id.VSub_Name VER_CONCAT_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<cron>} {(${ Id.VSub_Name VER_CRON_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<hostsfile>} {(${ Id.VSub_Name VER_HOSTSFILE_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<logrotate>} {(${ Id.VSub_Name VER_LOGROTATE_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<ntp>} {(${ Id.VSub_Name VER_NTP_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<ubuntu>} {(${ Id.VSub_Name VER_UBUNTU_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<windows>} {(${ Id.VSub_Name VER_WINDOWS_COOKBOOK)})
    (C {<cleanup_and_download_cookbook>} {<yum>} {(${ Id.VSub_Name VER_YUM_COOKBOOK)})
    (C {<download_file>} {<knife-acl-1.0.2.gem>} 
      {<https> <Id.Lit_Colon ':'> <'//rubygems.global.ssl.fastly.net/gems/knife-acl-1.0.2.gem'>}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GEMS)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {<arr-pm-0.0.10>}
                  {<backports-3.6.4>}
                  {<cabin-0.7.1>}
                  {<childprocess-0.5.6>}
                  {<clamp-0.6.5>}
                  {<ffi-1.9.8>}
                  {<fpm-1.3.3>}
                  {<json-1.8.2>}
                ]
              )
            }
          spids: [926]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/fpm_gems'>})
    (command.ForEach
      iter_name: GEM
      iter_words: [
        {
          (braced_var_sub
            token: <Id.VSub_Name GEMS>
            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<download_file>} {<'fpm_gems/'> ($ Id.VSub_DollarName '$GEM') <.gem>} 
              {<https> <Id.Lit_Colon ':'> <'//rubygems.global.ssl.fastly.net/gems/'> 
                ($ Id.VSub_DollarName '$GEM') <.gem>
              }
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GEMS)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {<excon-0.45.3>}
                  {<multi_json-1.11.2>}
                  {<multipart-post-2.0.0>}
                  {<faraday-0.9.1>}
                  {<elasticsearch-api-1.0.12>}
                  {<elasticsearch-transport-1.0.12>}
                  {<elasticsearch-1.0.12>}
                  {<fluent-plugin-elasticsearch-0.9.0>}
                ]
              )
            }
          spids: [990]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/fluentd_gems'>})
    (command.ForEach
      iter_name: GEM
      iter_words: [
        {
          (braced_var_sub
            token: <Id.VSub_Name GEMS>
            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<download_file>} {<'fluentd_gems/'> ($ Id.VSub_DollarName '$GEM') <.gem>} 
              {<https> <Id.Lit_Colon ':'> <'//rubygems.global.ssl.fastly.net/gems/'> 
                ($ Id.VSub_DollarName '$GEM') <.gem>
              }
            )
          ]
        )
    )
    (C {<download_file>} {<cirros-0.3.4-x86_64-disk.img>} 
      {<http> <Id.Lit_Colon ':'> <'//download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img'>}
    )
    (C {<rm>} {<-f>} 
      {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/kibana-4.0.2-linux-x64.tar.gz_downloaded'>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/kibana-4.0.2-linux-x64.tar.gz'>}
    )
    (C {<rm>} {<-rf>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/diamond_downloaded'>} 
      {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/diamond'>}
    )
    (C {<clone_repo>} {<https> <Id.Lit_Colon ':'> <'//github.com/python-diamond/Diamond'>} 
      {<python-diamond>} {($ Id.VSub_DollarName '$VER_DIAMOND')}
    )
    (C {<clone_repo>} {<https> <Id.Lit_Colon ':'> <'//github.com/mobz/elasticsearch-head'>} 
      {<elasticsearch-head>} {($ Id.VSub_DollarName '$VER_ESPLUGIN')}
    )
    (C {<download_file>} {<pyrabbit-1.0.1.tar.gz>} 
      {<https> <Id.Lit_Colon ':'> 
        <'//pypi.python.org/packages/source/p/pyrabbit/pyrabbit-1.0.1.tar.gz'>
      }
    )
    (C {<download_file>} {<requests-aws-0.1.6.tar.gz>} 
      {<https> <Id.Lit_Colon ':'> 
        <'//pypi.python.org/packages/source/r/requests-aws/requests-aws-0.1.6.tar.gz'>
      }
    )
    (C {<download_file>} {<pyzabbix-0.7.3.tar.gz>} 
      {<https> <Id.Lit_Colon ':'> 
        <'//pypi.python.org/packages/source/p/pyzabbix/pyzabbix-0.7.3.tar.gz'>
      }
    )
    (C {<download_file>} {<pagerduty-zabbix-proxy.py>} 
      {<https> <Id.Lit_Colon ':'> 
        <
'//gist.githubusercontent.com/ryanhoskin/202a1497c97b0072a83a/raw/96e54cecdd78e7990bb2a6cc8f84070599bdaf06/pd-zabbix-proxy.py'
        >
      }
    )
    (C {<download_file>} {<carbon-> (${ Id.VSub_Name VER_GRAPHITE_CARBON) <.tar.gz>} 
      {<http> <Id.Lit_Colon ':'> <'//pypi.python.org/packages/source/c/carbon/carbon-'> 
        (${ Id.VSub_Name VER_GRAPHITE_CARBON) <.tar.gz>
      }
    )
    (C {<download_file>} {<whisper-> (${ Id.VSub_Name VER_GRAPHITE_WHISPER) <.tar.gz>} 
      {<http> <Id.Lit_Colon ':'> <'//pypi.python.org/packages/source/w/whisper/whisper-'> 
        (${ Id.VSub_Name VER_GRAPHITE_WHISPER) <.tar.gz>
      }
    )
    (C {<download_file>} {<graphite-web-> (${ Id.VSub_Name VER_GRAPHITE_WEB) <.tar.gz>} 
      {<http> <Id.Lit_Colon ':'> <'//pypi.python.org/packages/source/g/graphite-web/graphite-web-'> 
        (${ Id.VSub_Name VER_GRAPHITE_WEB) <.tar.gz>
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RALLY_PACKAGES)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {<Babel-1.3.tar.gz>}
                  {<Jinja2-2.7.3.tar.gz>}
                  {<Mako-1.0.1.tar.gz>}
                  {<MarkupSafe-0.23.tar.gz>}
                  {<PyYAML-3.11.tar.gz>}
                  {<Pygments-2.0.2.tar.gz>}
                  {<SQLAlchemy-0.9.9.tar.gz>}
                  {<Sphinx-1.2.3.tar.gz>}
                  {<Tempita-0.5.2.tar.gz>}
                  {<alembic-0.7.6.tar.gz>}
                  {<anyjson-0.3.3.tar.gz>}
                  {<appdirs-1.4.0.tar.gz>}
                  {<argparse-1.3.0.tar.gz>}
                  {<boto-2.38.0.tar.gz>}
                  {<cffi-1.1.0.tar.gz>}
                  {<cliff-1.12.0.tar.gz>}
                  {<cliff-tablib-1.1.tar.gz>}
                  {<cmd2-0.6.8.tar.gz>}
                  {<cryptography-0.9.tar.gz>}
                  {<debtcollector-0.4.0.tar.gz>}
                  {<decorator-3.4.2.tar.gz>}
                  {<docutils-0.12.tar.gz>}
                  {<ecdsa-0.13.tar.gz>}
                  {<enum34-1.0.4.tar.gz>}
                  {<extras-0.0.3.tar.gz>}
                  {<fixtures-1.2.0.tar.gz>}
                  {<futures-3.0.2.tar.gz>}
                  {<httplib2-0.9.1.tar.gz>}
                  {<idna-2.0.tar.gz>}
                  {<ipaddress-1.0.7.tar.gz>}
                  {<iso8601-0.1.10.tar.gz>}
                  {<jsonpatch-1.11.tar.gz>}
                  {<jsonpointer-1.9.tar.gz>}
                  {<jsonschema-2.4.0.tar.gz>}
                  {<linecache2-1.0.0.tar.gz>}
                  {<lxml-3.4.4.tar.gz>}
                  {<msgpack-python-0.4.6.tar.gz>}
                  {<netaddr-0.7.14.tar.gz>}
                  {<netifaces-0.10.4.tar.gz>}
                  {<ordereddict-1.1.tar.gz>}
                  {<os-client-config-1.2.0.tar.gz>}
                  {<oslo.config-1.11.0.tar.gz>}
                  {<oslo.context-0.3.0.tar.gz>}
                  {<oslo.db-1.9.0.tar.gz>}
                  {<oslo.i18n-1.6.0.tar.gz>}
                  {<oslo.log-1.2.0.tar.gz>}
                  {<oslo.serialization-1.5.0.tar.gz>}
                  {<oslo.utils-1.5.0.tar.gz>}
                  {<paramiko-1.15.2.tar.gz>}
                  {<pbr-1.0.1.tar.gz>}
                  {<pip-7.0.3.tar.gz>}
                  {<psycopg2-2.6.tar.gz>}
                  {<pyOpenSSL-0.15.1.tar.gz>}
                  {<pyasn1-0.1.7.tar.gz>}
                  {<pycparser-2.13.tar.gz>}
                  {<pycrypto-2.6.1.tar.gz>}
                  {<pyparsing-2.0.3.tar.gz>}
                  {<python-ceilometerclient-1.2.0.tar.gz>}
                  {<python-cinderclient-1.2.1.tar.gz>}
                  {<python-designateclient-1.2.0.tar.gz>}
                  {<python-glanceclient-0.18.0.tar.gz>}
                  {<python-heatclient-0.6.0.tar.gz>}
                  {<python-ironicclient-0.6.0.tar.gz>}
                  {<python-keystoneclient-1.5.0.tar.gz>}
                  {<python-mimeparse-0.1.4.tar.gz>}
                  {<python-neutronclient-2.5.0.tar.gz>}
                  {<python-novaclient-2.25.0.tar.gz>}
                  {<python-openstackclient-1.3.0.tar.gz>}
                  {<python-saharaclient-0.9.0.tar.gz>}
                  {<python-subunit-1.1.0.tar.gz>}
                  {<python-swiftclient-2.4.0.tar.gz>}
                  {<python-troveclient-1.1.0.tar.gz>}
                  {<python-zaqarclient-0.1.1.tar.gz>}
                  {<pytz-2015.4.tar.gz>}
                  {<rally-0.0.4.tar.gz>}
                  {<requests-2.7.0.tar.gz>}
                  {<setuptools-17.0.tar.gz>}
                  {<simplejson-3.7.2.tar.gz>}
                  {<six-1.9.0.tar.gz>}
                  {<sqlalchemy-migrate-0.9.6.tar.gz>}
                  {<sqlparse-0.1.15.tar.gz>}
                  {<stevedore-1.4.0.tar.gz>}
                  {<tablib-0.10.0.tar.gz>}
                  {<testresources-0.2.7.tar.gz>}
                  {<testscenarios-0.5.0.tar.gz>}
                  {<testtools-1.8.0.tar.gz>}
                  {<traceback2-1.4.0.tar.gz>}
                  {<unittest2-1.0.1.tar.gz>}
                  {<warlock-1.1.0.tar.gz>}
                  {<wrapt-1.10.4.tar.gz>}
                ]
              )
            }
          spids: [1205]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_GlobDEqual
                          left: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>}))}
                          right: {(DQ <Darwin>)}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:SED)
                      op: assign_op.Equal
                      rhs: {(DQ <'sed -E'>)}
                      spids: [1413]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1394 1411]
        )
      ]
      else_action: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SED)
                  op: assign_op.Equal
                  rhs: {(DQ <'sed -r'>)}
                  spids: [1421]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$BOOTSTRAP_CACHE_DIR') <'/rally'>})
    (command.ForEach
      iter_name: RALLY_PACKAGE
      iter_words: [
        {
          (braced_var_sub
            token: <Id.VSub_Name RALLY_PACKAGES>
            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BARE_PACKAGE_NAME)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<echo>} {($ Id.VSub_DollarName '$RALLY_PACKAGE')})
                              (C {($ Id.VSub_DollarName '$SED')} {(SQ <'s/^(.+)-.+$/\\1/'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [1453]
                )
              ]
            )
            (C {<download_file>} {<'rally/'> ($ Id.VSub_DollarName '$RALLY_PACKAGE')} 
              {<https> <Id.Lit_Colon ':'> <'//pypi.python.org/packages/source/'> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<echo>} {($ Id.VSub_DollarName '$RALLY_PACKAGE')})
                        (C {<cut>} {<-c1>} {<->})
                      ]
                      negated: F
                    )
                ) <'/'> ($ Id.VSub_DollarName '$BARE_PACKAGE_NAME') <'/'> ($ Id.VSub_DollarName '$RALLY_PACKAGE')
              }
            )
          ]
        )
    )
    (C {<download_file>} {<'rally/prettytable-0.7.2.tar.gz'>} 
      {<https> <Id.Lit_Colon ':'> 
        <'//pypi.python.org/packages/source/P/PrettyTable/prettytable-0.7.2.tar.gz'>
      }
    )
  ]
)