vendorificator 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +194 -3
- data/features/chef_cookbook.feature +23 -10
- data/features/fixtures/vcr_cassettes/vendorificator.yml +681 -0
- data/features/git.feature +1 -1
- data/features/needed.feature +2 -2
- data/features/status.feature +3 -3
- data/features/tarball.feature +5 -5
- data/features/tarball_edit.feature +1 -1
- data/features/vendor.feature +1 -1
- data/lib/vendorificator/cli.rb +1 -1
- data/lib/vendorificator/config.rb +0 -2
- data/lib/vendorificator/hooks/chef_cookbook.rb +19 -6
- data/lib/vendorificator/vendor.rb +4 -2
- data/lib/vendorificator/version.rb +1 -1
- data/lib/vendorificator.rb +1 -0
- metadata +4 -4
    
        data/README.md
    CHANGED
    
    | @@ -1,7 +1,6 @@ | |
| 1 1 | 
             
            # Vendorificator
         | 
| 2 2 |  | 
| 3 | 
            -
            > **THIS  | 
| 4 | 
            -
            about that - I'm working on it. Expect first usable version in January 2013.
         | 
| 3 | 
            +
            > **THIS PROGRAM IS STILL IN BETA**, use on your own risk!
         | 
| 5 4 |  | 
| 6 5 | 
             
            ## About
         | 
| 7 6 |  | 
| @@ -34,7 +33,199 @@ Or install it yourself as: | |
| 34 33 |  | 
| 35 34 | 
             
            ## Usage
         | 
| 36 35 |  | 
| 37 | 
            -
             | 
| 36 | 
            +
            Vendorificator is a command-line tool. The command is called `vendor`
         | 
| 37 | 
            +
            (`bundle exec vendor` if you use Bundler). It accepts multiple
         | 
| 38 | 
            +
            subcommands.
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            Run `vendor` to see list of subcommands. Run `vendor help _command_`
         | 
| 41 | 
            +
            to get detailed description of a command.
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            ### Commands
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            Most important commands are listed here; use `vendor help` for more
         | 
| 46 | 
            +
            detail.
         | 
| 47 | 
            +
             | 
| 48 | 
            +
             * `vendor sync` will update all vendor modules that need updating
         | 
| 49 | 
            +
             * `vendor status` will list all the modules and their status
         | 
| 50 | 
            +
             * `vendor pull` will pull all vendor branches, tags, and notes from a
         | 
| 51 | 
            +
               Git remote
         | 
| 52 | 
            +
             * `vendor diff` will show the differences between vendor module's
         | 
| 53 | 
            +
               pristine branch and curent work tree
         | 
| 54 | 
            +
             * `vendor log` will show a `git log` of all changes made to a particular
         | 
| 55 | 
            +
               vendor module's files that are not in module's pristine branch
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            ## Configuration
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            Vendorificator reads its configuration from a Ruby file named
         | 
| 60 | 
            +
            `Vendorfile` (or `config/vendor.rb`). If the file does not exist in
         | 
| 61 | 
            +
            the current directory, it looks for it in parent directories until it
         | 
| 62 | 
            +
            gets to the git repository's root. All files Vendorificator creates
         | 
| 63 | 
            +
            are rooted in directory containing the `Vendorfile` (or the directory
         | 
| 64 | 
            +
            containing `config` directory with `vendor.rb` file in it).
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            Vendorfile is a Ruby file containing configuration settings and
         | 
| 67 | 
            +
            description of upstream vendor modules. It may also contain any custom
         | 
| 68 | 
            +
            Ruby code if needed.
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            ### Settings
         | 
| 71 | 
            +
             | 
| 72 | 
            +
             * `basedir "subpath"` -- directory below work root where
         | 
| 73 | 
            +
               Vendorificator will download modules. Defaults to `"vendor"`.
         | 
| 74 | 
            +
             * `branch_prefix "prefix"` -- prefix for name of Git
         | 
| 75 | 
            +
               branches. Defaults to `"vendor"`, which means all branches created
         | 
| 76 | 
            +
               by Vendorificator start with `"vendor/"`.
         | 
| 77 | 
            +
             * `remotes ['remote1', 'remote2', ...]` -- list of Git remotes that
         | 
| 78 | 
            +
               `vendor pull` will use as default. Defaults to `['origin']`.
         | 
| 79 | 
            +
             * `chef_cookbook_ignore_dependencies ['cookbook1', 'cookbook2', ...]`
         | 
| 80 | 
            +
               -- default value for `:ignore_dependencies` argument of
         | 
| 81 | 
            +
             `chef_cookbook` modules.
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            ### Modules
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            A **vendor module** is a single piece of upstream code managed by
         | 
| 86 | 
            +
            Vendorificator. It is a basic building block. A vendor module is
         | 
| 87 | 
            +
            declared by calling one of a couple functions that define them.
         | 
| 88 | 
            +
             | 
| 89 | 
            +
            #### vendor
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            Vendor is most general of those. You call it like this:
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            ```ruby
         | 
| 94 | 
            +
            vendor 'name', :option => 'value' do
         | 
| 95 | 
            +
              # here in the block you code what needs to be done
         | 
| 96 | 
            +
              # to get ("conjure") the module. You're already in
         | 
| 97 | 
            +
              # the right directory, branch, etc, and what you add to the
         | 
| 98 | 
            +
              # current directory will be committed and tagged.
         | 
| 99 | 
            +
            end
         | 
| 100 | 
            +
            ```
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            It takes following options:
         | 
| 103 | 
            +
             | 
| 104 | 
            +
             * `:version` - the version of module. If the module's contents should
         | 
| 105 | 
            +
               change, increase the version, so that Vendorificator knows it needs
         | 
| 106 | 
            +
               to re-create the module.
         | 
| 107 | 
            +
             * `:category` - module's *category* is subdirectory of the basedir
         | 
| 108 | 
            +
               where module's directory will be created. For example, `vendor
         | 
| 109 | 
            +
               "foo"` will go to `vendor/foo` by default, but `vendor "foo",
         | 
| 110 | 
            +
               :category => :widgets` will go to `vendor/widgets/foo`. It is also
         | 
| 111 | 
            +
               added in a similar way to module's branch name, tag names, etc.
         | 
| 112 | 
            +
             * `:path` - lets you specify subdirectory in which the module will be
         | 
| 113 | 
            +
               downloaded
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            All other upstream modules take these options, and can be given a
         | 
| 116 | 
            +
            block to postprocess their content (e.g. if a tarball includes a
         | 
| 117 | 
            +
            `.git` file/directory that confuses Git, you can remove it in a
         | 
| 118 | 
            +
            block).
         | 
| 119 | 
            +
             | 
| 120 | 
            +
            Example:
         | 
| 121 | 
            +
             | 
| 122 | 
            +
            ```ruby
         | 
| 123 | 
            +
            vendor 'generated', :version => '0.23' do |mod|
         | 
| 124 | 
            +
              File.open('README') { |f| f.puts "Hello, World!" }
         | 
| 125 | 
            +
              File.open('VERSION') { |f| f.puts mod.version }
         | 
| 126 | 
            +
            end
         | 
| 127 | 
            +
            ```
         | 
| 128 | 
            +
             | 
| 129 | 
            +
            #### archive
         | 
| 130 | 
            +
             | 
| 131 | 
            +
            Archive takes a tar.gz, tar.bz2, or zip file, downloads it, and
         | 
| 132 | 
            +
            unpacks it as contents of the module. It takes same options as
         | 
| 133 | 
            +
            `vendor`, plus:
         | 
| 134 | 
            +
             | 
| 135 | 
            +
             * `:url` -- address from which to download the archive. If not given,
         | 
| 136 | 
            +
               module's name will be used as URL, and its basename as module's
         | 
| 137 | 
            +
               name (e.g. `archive
         | 
| 138 | 
            +
               "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz"` will be named
         | 
| 139 | 
            +
               `"hello-2.8"` and downloaded from the URL).
         | 
| 140 | 
            +
             * `:filename` -- a filename to download. Useful if URL doesn't
         | 
| 141 | 
            +
               specify this nwell.
         | 
| 142 | 
            +
             * `:type` -- `:targz`, `:tarbz2`, or `:zip`
         | 
| 143 | 
            +
             * `:unpack` -- a command that will be used to unpack the file
         | 
| 144 | 
            +
             * `:basename` -- defaults to basename of `filename`, will be used as
         | 
| 145 | 
            +
               directory name
         | 
| 146 | 
            +
             * `:no_strip_root` -- by default, if archive consists of a single
         | 
| 147 | 
            +
               directory, Vendorificator will strip it. Setting this to true
         | 
| 148 | 
            +
               disables this behaviour.
         | 
| 149 | 
            +
             * `:checksum` -- if set to SHA256 checksum of the file, it will be
         | 
| 150 | 
            +
               checked on download.
         | 
| 151 | 
            +
               
         | 
| 152 | 
            +
            Archive's `:version` defaults to file name.
         | 
| 153 | 
            +
             | 
| 154 | 
            +
            Example:
         | 
| 155 | 
            +
             | 
| 156 | 
            +
            ```ruby
         | 
| 157 | 
            +
                archive :hello,
         | 
| 158 | 
            +
                  :url => 'http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz',
         | 
| 159 | 
            +
                  :version => '2.8',
         | 
| 160 | 
            +
                  :checksum => 'e6b77f81f7cf7daefad4a9f5b65de6cae9c3f13b8cfbaea8cb53bb5ea5460d73'
         | 
| 161 | 
            +
            ```
         | 
| 162 | 
            +
             | 
| 163 | 
            +
            #### git
         | 
| 164 | 
            +
             | 
| 165 | 
            +
            Downloads snapshot of a Git repository. Takes the same options as
         | 
| 166 | 
            +
            `vendor`, plus:
         | 
| 167 | 
            +
             | 
| 168 | 
            +
             * `:repository` -- address of the repository. Defaults to name (and
         | 
| 169 | 
            +
               sets name to its basename then), just like `:url` for `archive`
         | 
| 170 | 
            +
               (e.g. `git "git://github.com/github/testrepo.git"` will be cloned
         | 
| 171 | 
            +
               from that repository, and named `testrepo`).
         | 
| 172 | 
            +
             * `:branch`, `:revision` -- what to check out when repository is
         | 
| 173 | 
            +
               cloned.
         | 
| 174 | 
            +
             | 
| 175 | 
            +
            Git module's `:version` defaults to the conjured revision.
         | 
| 176 | 
            +
             | 
| 177 | 
            +
            Example:
         | 
| 178 | 
            +
             | 
| 179 | 
            +
            ```ruby
         | 
| 180 | 
            +
            git 'git://github.com/mpasternacki/nagios.git',
         | 
| 181 | 
            +
                :branch => 'COOK-1997',
         | 
| 182 | 
            +
                :category => :cookbooks,
         | 
| 183 | 
            +
                :version => '0.20130124.2'
         | 
| 184 | 
            +
            ```
         | 
| 185 | 
            +
             | 
| 186 | 
            +
            #### chef_cookbook
         | 
| 187 | 
            +
             | 
| 188 | 
            +
            Downloads an Opscode Chef cookbook from http://community.opscode.com/
         | 
| 189 | 
            +
            website (same thing that `knife cookbook site install` does). It
         | 
| 190 | 
            +
            resolves dependencies -- all needed modules will be downloaded by
         | 
| 191 | 
            +
            default. Its category defaults to `:cookbooks`. It may take the same
         | 
| 192 | 
            +
            arguments as `archive` (but the name and possibly version is almost
         | 
| 193 | 
            +
            always enough), plus:
         | 
| 194 | 
            +
             | 
| 195 | 
            +
             * `:ignore_dependencies` -- if true, ignore dependencies
         | 
| 196 | 
            +
               completely. If an array, don't download dependencies that are in
         | 
| 197 | 
            +
               the array. Default for that is `chef_cookbook_ignore_dependencies`
         | 
| 198 | 
            +
               setting.
         | 
| 199 | 
            +
               
         | 
| 200 | 
            +
            Examples:
         | 
| 201 | 
            +
             | 
| 202 | 
            +
            ```ruby
         | 
| 203 | 
            +
            chef_cookbook 'apt'
         | 
| 204 | 
            +
            chef_cookbook 'memcached'
         | 
| 205 | 
            +
            chef_cookbook 'chef-server', :ignore_dependences => true
         | 
| 206 | 
            +
            ```
         | 
| 207 | 
            +
             | 
| 208 | 
            +
            ```ruby
         | 
| 209 | 
            +
            chef_cookbook_ignore_dependencies ['runit']
         | 
| 210 | 
            +
            chef_cookbook 'memcached'
         | 
| 211 | 
            +
            ```
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            ```ruby
         | 
| 214 | 
            +
            chef_cookbook 'memcached', ignore_dependencies => ['runit']
         | 
| 215 | 
            +
            ```
         | 
| 216 | 
            +
             | 
| 217 | 
            +
            If you get Chef cookbooks from Git or anywhere else than Opscode's
         | 
| 218 | 
            +
            community website, you can still use dependency resolution by mixing
         | 
| 219 | 
            +
            in the hook class:
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            ```ruby
         | 
| 222 | 
            +
            class <<  git 'git://github.com/user/cookbook.git', :category => :cookbooks
         | 
| 223 | 
            +
              include Vendorificator::Hooks::ChefCookbookDependencies
         | 
| 224 | 
            +
            end
         | 
| 225 | 
            +
            ```
         | 
| 226 | 
            +
             | 
| 227 | 
            +
            This is a bit convoluted, but there will soon be an argument to do
         | 
| 228 | 
            +
            that in a nicer way.
         | 
| 38 229 |  | 
| 39 230 | 
             
            ## Contributing
         | 
| 40 231 |  | 
| @@ -5,11 +5,9 @@ Scenario: A single cookbook, without dependencies | |
| 5 5 | 
             
            Scenario: Version & checksum
         | 
| 6 6 | 
             
              Given a repository with following Vendorfile:
         | 
| 7 7 | 
             
                """ruby
         | 
| 8 | 
            -
                require 'vendorificator/vendor/chef_cookbook'
         | 
| 9 | 
            -
             | 
| 10 8 | 
             
                chef_cookbook 'apt'
         | 
| 11 9 | 
             
                """
         | 
| 12 | 
            -
              When I run "vendor"
         | 
| 10 | 
            +
              When I run "vendor sync"
         | 
| 13 11 | 
             
              Then following has been conjured:
         | 
| 14 12 | 
             
                | Name      | cookbooks/apt |
         | 
| 15 13 | 
             
                | With file | metadata.rb   |
         | 
| @@ -17,11 +15,9 @@ Scenario: Version & checksum | |
| 17 15 | 
             
            Scenario: Dependency hook
         | 
| 18 16 | 
             
              Given a repository with following Vendorfile:
         | 
| 19 17 | 
             
                """ruby
         | 
| 20 | 
            -
                require 'vendorificator/vendor/chef_cookbook'
         | 
| 21 | 
            -
             | 
| 22 18 | 
             
                chef_cookbook 'memcached'
         | 
| 23 19 | 
             
                """
         | 
| 24 | 
            -
              When I run "vendor"
         | 
| 20 | 
            +
              When I run "vendor sync"
         | 
| 25 21 | 
             
              Then following has been conjured:
         | 
| 26 22 | 
             
                | Name      | cookbooks/memcached | cookbooks/runit |
         | 
| 27 23 | 
             
                | With file | metadata.rb         | metadata.rb     |
         | 
| @@ -29,16 +25,33 @@ Scenario: Dependency hook | |
| 29 25 | 
             
            Scenario: Ignored dependency
         | 
| 30 26 | 
             
              Given a repository with following Vendorfile:
         | 
| 31 27 | 
             
                """ruby
         | 
| 32 | 
            -
                require 'vendorificator/vendor/chef_cookbook'
         | 
| 33 | 
            -
             | 
| 34 28 | 
             
                chef_cookbook_ignore_dependencies ['runit']
         | 
| 35 | 
            -
             | 
| 36 29 | 
             
                chef_cookbook 'memcached'
         | 
| 37 30 | 
             
                """
         | 
| 38 | 
            -
              When I run "vendor"
         | 
| 31 | 
            +
              When I run "vendor sync"
         | 
| 39 32 | 
             
              Then following has been conjured:
         | 
| 40 33 | 
             
                | Name      | cookbooks/memcached |
         | 
| 41 34 | 
             
                | With file | metadata.rb         |
         | 
| 42 35 | 
             
              And following has not been conjured:
         | 
| 43 36 | 
             
                | Name      | cookbooks/runit |
         | 
| 44 37 | 
             
                | With file | metadata.rb     |
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            Scenario: Ignored all dependencies
         | 
| 40 | 
            +
              Given a repository with following Vendorfile:
         | 
| 41 | 
            +
                """ruby
         | 
| 42 | 
            +
                chef_cookbook_ignore_dependencies true
         | 
| 43 | 
            +
                chef_cookbook 'chef-server'
         | 
| 44 | 
            +
                """
         | 
| 45 | 
            +
              When I run "vendor sync"
         | 
| 46 | 
            +
              Then following has been conjured:
         | 
| 47 | 
            +
                | Name      | cookbooks/chef-server |
         | 
| 48 | 
            +
                | With file | metadata.rb           |
         | 
| 49 | 
            +
              And following has not been conjured:
         | 
| 50 | 
            +
                | Name      | cookbooks/runit |
         | 
| 51 | 
            +
                | With file | metadata.rb     |
         | 
| 52 | 
            +
              And following has not been conjured:
         | 
| 53 | 
            +
                | Name      | cookbooks/daemontools |
         | 
| 54 | 
            +
                | With file | metadata.rb           |
         | 
| 55 | 
            +
              And following has not been conjured:
         | 
| 56 | 
            +
                | Name      | cookbooks/apache2 |
         | 
| 57 | 
            +
                | With file | metadata.rb       |
         | 
| @@ -2372,4 +2372,685 @@ http_interactions: | |
| 2372 2372 | 
             
                  string: ! '{"error_messages":["Resource does not exist"],"error_code":"NOT_FOUND"}'
         | 
| 2373 2373 | 
             
                http_version: '1.1'
         | 
| 2374 2374 | 
             
              recorded_at: Fri, 01 Feb 2013 18:47:12 GMT
         | 
| 2375 | 
            +
            - request:
         | 
| 2376 | 
            +
                method: get
         | 
| 2377 | 
            +
                uri: http://cookbooks.opscode.com/api/v1/cookbooks/chef-server
         | 
| 2378 | 
            +
                body:
         | 
| 2379 | 
            +
                  encoding: US-ASCII
         | 
| 2380 | 
            +
                  string: ''
         | 
| 2381 | 
            +
                headers:
         | 
| 2382 | 
            +
                  accept:
         | 
| 2383 | 
            +
                  - ! '*/*'
         | 
| 2384 | 
            +
                  user-agent:
         | 
| 2385 | 
            +
                  - Ruby
         | 
| 2386 | 
            +
              response:
         | 
| 2387 | 
            +
                status:
         | 
| 2388 | 
            +
                  code: 200
         | 
| 2389 | 
            +
                  message: OK
         | 
| 2390 | 
            +
                headers:
         | 
| 2391 | 
            +
                  server:
         | 
| 2392 | 
            +
                  - nginx/1.0.5
         | 
| 2393 | 
            +
                  date:
         | 
| 2394 | 
            +
                  - Sat, 02 Feb 2013 18:10:19 GMT
         | 
| 2395 | 
            +
                  content-type:
         | 
| 2396 | 
            +
                  - application/json; charset=utf-8
         | 
| 2397 | 
            +
                  connection:
         | 
| 2398 | 
            +
                  - keep-alive
         | 
| 2399 | 
            +
                  status:
         | 
| 2400 | 
            +
                  - 200 OK
         | 
| 2401 | 
            +
                  x-runtime:
         | 
| 2402 | 
            +
                  - '120'
         | 
| 2403 | 
            +
                  cache-control:
         | 
| 2404 | 
            +
                  - private, max-age=0, must-revalidate
         | 
| 2405 | 
            +
                  set-cookie:
         | 
| 2406 | 
            +
                  - logged-in-username=; domain=.opscode.com; path=/
         | 
| 2407 | 
            +
                  - _sandbox_session=eyJzZXNzaW9uX2lkIjoiNTZjNDY4ZWYwMzkyNzY3NDdjYWEzZGE3ODg2MzUxYjAiLCJsb2NhdGlvbiI6eyJhY3Rpb24iOiJzaG93IiwiaWQiOiJjaGVmLXNlcnZlciIsImNvbnRyb2xsZXIiOiJhcGkvdjEvY29va2Jvb2tzIn19--f8b9737a8b6006284bd4828f470097c4bb804cbd;
         | 
| 2408 | 
            +
                    domain=.opscode.com; path=/; HttpOnly
         | 
| 2409 | 
            +
                  content-length:
         | 
| 2410 | 
            +
                  - '758'
         | 
| 2411 | 
            +
                  etag:
         | 
| 2412 | 
            +
                  - ! '"6ddf0a9e2de4ae6e63f2948aeb98b5f2"'
         | 
| 2413 | 
            +
                body:
         | 
| 2414 | 
            +
                  encoding: US-ASCII
         | 
| 2415 | 
            +
                  string: ! '{"maintainer":"opscode","updated_at":"2012-11-26T01:02:01Z","category":"Utilities","external_url":"github.com/opscode-cookbooks/chef-server","latest_version":"http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/1_1_0","created_at":"2011-05-03T13:54:53Z","average_rating":null,"name":"chef-server","versions":["http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/1_1_0","http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/1_0_0","http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/0_99_12","http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/0_99_11","http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/0_99_10"],"description":"Installs
         | 
| 2416 | 
            +
                    and configures Chef Server"}'
         | 
| 2417 | 
            +
                http_version: '1.1'
         | 
| 2418 | 
            +
              recorded_at: Sat, 02 Feb 2013 18:10:20 GMT
         | 
| 2419 | 
            +
            - request:
         | 
| 2420 | 
            +
                method: get
         | 
| 2421 | 
            +
                uri: http://cookbooks.opscode.com/api/v1/cookbooks/chef-server/versions/1_1_0
         | 
| 2422 | 
            +
                body:
         | 
| 2423 | 
            +
                  encoding: US-ASCII
         | 
| 2424 | 
            +
                  string: ''
         | 
| 2425 | 
            +
                headers:
         | 
| 2426 | 
            +
                  accept:
         | 
| 2427 | 
            +
                  - ! '*/*'
         | 
| 2428 | 
            +
                  user-agent:
         | 
| 2429 | 
            +
                  - Ruby
         | 
| 2430 | 
            +
              response:
         | 
| 2431 | 
            +
                status:
         | 
| 2432 | 
            +
                  code: 200
         | 
| 2433 | 
            +
                  message: OK
         | 
| 2434 | 
            +
                headers:
         | 
| 2435 | 
            +
                  server:
         | 
| 2436 | 
            +
                  - nginx/1.0.5
         | 
| 2437 | 
            +
                  date:
         | 
| 2438 | 
            +
                  - Sat, 02 Feb 2013 18:10:19 GMT
         | 
| 2439 | 
            +
                  content-type:
         | 
| 2440 | 
            +
                  - application/json; charset=utf-8
         | 
| 2441 | 
            +
                  connection:
         | 
| 2442 | 
            +
                  - keep-alive
         | 
| 2443 | 
            +
                  status:
         | 
| 2444 | 
            +
                  - 200 OK
         | 
| 2445 | 
            +
                  etag:
         | 
| 2446 | 
            +
                  - ! '"3f5257f87da094ff8a4a4a6d2ed82a07"'
         | 
| 2447 | 
            +
                  set-cookie:
         | 
| 2448 | 
            +
                  - logged-in-username=; domain=.opscode.com; path=/
         | 
| 2449 | 
            +
                  - _sandbox_session=eyJzZXNzaW9uX2lkIjoiZTVhMTQwNTAzMjA5YWMyNDMxZDllOTJiMTA0MzY1NmEiLCJsb2NhdGlvbiI6eyJjb29rYm9va19pZCI6ImNoZWYtc2VydmVyIiwiY29udHJvbGxlciI6ImFwaS92MS9jb29rYm9va192ZXJzaW9ucyIsImlkIjoiMV8xXzAiLCJhY3Rpb24iOiJzaG93In19--94011b94ebf69c3bf33559b400e4b8316464c187;
         | 
| 2450 | 
            +
                    domain=.opscode.com; path=/; HttpOnly
         | 
| 2451 | 
            +
                  cache-control:
         | 
| 2452 | 
            +
                  - private, max-age=0, must-revalidate
         | 
| 2453 | 
            +
                  content-length:
         | 
| 2454 | 
            +
                  - '362'
         | 
| 2455 | 
            +
                  x-runtime:
         | 
| 2456 | 
            +
                  - '131'
         | 
| 2457 | 
            +
                body:
         | 
| 2458 | 
            +
                  encoding: US-ASCII
         | 
| 2459 | 
            +
                  string: ! '{"tarball_file_size":24907,"version":"1.1.0","file":"http://s3.amazonaws.com/community-files.opscode.com/cookbook_versions/tarballs/2451/original/chef-server.tgz?1353891710","created_at":"2012-11-26T01:01:53Z","cookbook":"http://cookbooks.opscode.com/api/v1/cookbooks/chef-server","license":"Apache
         | 
| 2460 | 
            +
                    2.0","average_rating":null,"updated_at":"2012-11-26T01:01:53Z"}'
         | 
| 2461 | 
            +
                http_version: '1.1'
         | 
| 2462 | 
            +
              recorded_at: Sat, 02 Feb 2013 18:10:20 GMT
         | 
| 2463 | 
            +
            - request:
         | 
| 2464 | 
            +
                method: get
         | 
| 2465 | 
            +
                uri: http://s3.amazonaws.com/community-files.opscode.com/cookbook_versions/tarballs/2451/original/chef-server.tgz?1353891710
         | 
| 2466 | 
            +
                body:
         | 
| 2467 | 
            +
                  encoding: US-ASCII
         | 
| 2468 | 
            +
                  string: ''
         | 
| 2469 | 
            +
                headers:
         | 
| 2470 | 
            +
                  accept:
         | 
| 2471 | 
            +
                  - ! '*/*'
         | 
| 2472 | 
            +
                  user-agent:
         | 
| 2473 | 
            +
                  - Ruby
         | 
| 2474 | 
            +
              response:
         | 
| 2475 | 
            +
                status:
         | 
| 2476 | 
            +
                  code: 200
         | 
| 2477 | 
            +
                  message: OK
         | 
| 2478 | 
            +
                headers:
         | 
| 2479 | 
            +
                  x-amz-id-2:
         | 
| 2480 | 
            +
                  - 8EyI7PGag1vh8CtWeHpxSMNMYua3ZOTXfblA27zkczQg6QNiAU1O1cWBbSZT1NBD
         | 
| 2481 | 
            +
                  x-amz-request-id:
         | 
| 2482 | 
            +
                  - 11511F2E851F7F7E
         | 
| 2483 | 
            +
                  date:
         | 
| 2484 | 
            +
                  - Sat, 02 Feb 2013 18:10:23 GMT
         | 
| 2485 | 
            +
                  last-modified:
         | 
| 2486 | 
            +
                  - Mon, 26 Nov 2012 01:02:06 GMT
         | 
| 2487 | 
            +
                  etag:
         | 
| 2488 | 
            +
                  - ! '"f5f46683f0fb341eaea7fee9bf2f7f57"'
         | 
| 2489 | 
            +
                  accept-ranges:
         | 
| 2490 | 
            +
                  - bytes
         | 
| 2491 | 
            +
                  content-type:
         | 
| 2492 | 
            +
                  - application/octet-stream
         | 
| 2493 | 
            +
                  content-length:
         | 
| 2494 | 
            +
                  - '24907'
         | 
| 2495 | 
            +
                  server:
         | 
| 2496 | 
            +
                  - AmazonS3
         | 
| 2497 | 
            +
                body:
         | 
| 2498 | 
            +
                  encoding: ASCII-8BIT
         | 
| 2499 | 
            +
                  string: !binary |-
         | 
| 2500 | 
            +
                    H4sIAH6/slAAA+19+0PbRrbw/qy/YtZJF2htY94NbXqXAmnZTSALZNt+Sa4j
         | 
| 2501 | 
            +
                    2zKoyJIryYDb5P7t33nNaCTL2CaEJK117zZYmseZM2fOa86ZaZ973VrixZde
         | 
| 2502 | 
            +
                    vPy3D/Q0Go2tjQ1F/27yv43Vdf5XHrWy2thY31jb2tjaVI2V9c1G429q40MB
         | 
| 2503 | 
            +
                    ZD+DJHVjAOXX1O+1vLjnhuXloFi3e0M7Mg7z72fytK35r5/5qX8WRrF3t30A
         | 
| 2504 | 
            +
                    PjbX12+Y/7X1wvxvbmxu/E017haM8ucvPv/11iDsBJ5Tb7tACk79wk/h39Bp
         | 
| 2505 | 
            +
                    +aHzsWGbPx/+sde/m6ax3xqkXnK3omB2/r+5tbk55//38djzv/vjzuEP+0+P
         | 
| 2506 | 
            +
                    fqj3OnfZxwT+vwLsvjj/6yvrc/5/H8+DB+pypb5Sb2w7zpfq5e7R0b9rK5tr
         | 
| 2507 | 
            +
                    W69VTe35sddOo3io2rHnpn4UKj9UFsWo5DwaBB3V8hSUHMSJf+nZrXyNrVjl
         | 
| 2508 | 
            +
                    t9UzH9QL1Y2iTjsGZaOtuv71oJ+o0PM6Xsequ76GdXehrjrhvnaj6KIF/4M2
         | 
| 2509 | 
            +
                    ksQPz9R+HLjwD4D0zEvdjpu6as/re2EnydrZ2qSRDBJP9QM37UZxr9l1e34w
         | 
| 2510 | 
            +
                    LA6lLc07DqOkkUPJ140VbMftdJTbc38HTAR+OLjOvn+9qfsByan6bnoOLYaJ
         | 
| 2511 | 
            +
                    n6RemAbDDCJQdrCkd913ww702woGXt8PAtWJvCRcSNW5e+mpjtd1B0GqLl34
         | 
| 2512 | 
            +
                    DPiKVRh1PEdBo4MwZRgb9UeP6iurFpSwegjjUa/vtlPlQqvpuacufe8qw8mj
         | 
| 2513 | 
            +
                    zUdY6A2Puxm6Pe+NAljMGzfw3cRL4GWCY+j6Z4PYbQWeyuSDAgS8Qew1ZWK3
         | 
| 2514 | 
            +
                    wzM/vK714+h6KK3lPrt9VC/k+1yx+HSeHP8/Ojw9Pvj+xenB4Z2KgJv5/+pG
         | 
| 2515 | 
            +
                    Y2utwP+3GuuNOf+/j+cB8NWQlzXy1DRSR/2kDbzG8NvEcX6CtR976ixwO2oY
         | 
| 2516 | 
            +
                    DdSVG6ZYtK2reqUV/65Ogft0/ThJHeCDfeUnxI86XgKSBav4PeAIwO7wLfz1
         | 
| 2517 | 
            +
                    K4ibuuP8Al203RBqAh/BT26YXHlxgjWAA/soidxAdWPvtwFxV+BUF15Hwa8E
         | 
| 2518 | 
            +
                    vyXOS+BPWPHKv/BfL56naX97eRl/1CMGsg48crnjJyAUhsu4BpZ/jK6+SqOv
         | 
| 2519 | 
            +
                    DDa8pSIkVtd+iJKERaLbigap87JdQKOWJ8lt+8dfgtKvDEqXHGtkyKCvvCCo
         | 
| 2520 | 
            +
                    kzz4z8BvX9SyKUGxsItyG/Gn3DZJDmTc0SBWL1sDgDJ22xdebAAEeXzhpYkN
         | 
| 2521 | 
            +
                    4xI0cuKfcSXTNogj9yz2vB5gXy3uPt1Zcl5CyyASPW4sgdYS1Ai8utc+jxJo
         | 
| 2522 | 
            +
                    gUbcH7QCv70Mb1Kv8wRQ+D+IR7/z+Pm/Dp5sbD5a//fm0yVn8cIDYgHQO4hL
         | 
| 2523 | 
            +
                    v4s0twAEk0MxDKTlnbtBV0VUIFZerx9EQy9esgaueEwkQalQ+xx0Bk8xFkGe
         | 
| 2524 | 
            +
                    zoKIp354gVNLDYGIb5/jDLgAaQsEZked+alqxW4I76G7/gDEL5FoAv3HUU96
         | 
| 2525 | 
            +
                    5MahuWMviQIhfgETmgOFCBQhXHKxdzYI3BjIO/ZQhFvjBxonIXuFisMZVGzB
         | 
| 2526 | 
            +
                    AAQ0RNiVR2qE44ZDlQzOzmRdIFjQSNuLw4SJBhfoDslmGF3bCxOP2kWQYFqX
         | 
| 2527 | 
            +
                    d+E/jsNfaC4SBYJiiOs2ilPhAhHoXCoBnLTNIk6qCnBx7gWg2kFVoAMHm0yi
         | 
| 2528 | 
            +
                    bnrlykyC/uTRkgbt0b10/YB0jAEpRYQSYMbIL9yUecAgPY9ih3lHp86qIehb
         | 
| 2529 | 
            +
                    zFJkDKv1BihmPA5oOQF0XSAVtFxQFQG8lpdeeV7oEMg2OmnUoC9FVzhMxCJU
         | 
| 2530 | 
            +
                    R20uB/Z5dOWhrgjfnSvSfANsP40AmYhJ0zUsyoQ5JYIf+2fnKf8m5Y7GhO0h
         | 
| 2531 | 
            +
                    8/NB71WtIRFHO+oPqTD0FAAe6uogRZxb6NbosNdiFyht6BDmQEqB/pvrFkoP
         | 
| 2532 | 
            +
                    qbfATCMNFhcw4R8K9OrOSdTzQAQKPouQABSomxZ6rqoerGRYgKDkQp+A2CJo
         | 
| 2533 | 
            +
                    AHwnwi6voviCVqHL6mk4RJxFqufSBJ2BRaC6rg9qs9eFYkRYTDnYKeAU7QUv
         | 
| 2534 | 
            +
                    9l0aCoBa1fLGwTUGNIErcdfqWtPzTp5TKYJhN4oBpcAinElVqA4BDksttwLr
         | 
| 2535 | 
            +
                    sHpwchLnCuAGIQBKfdvrEzl1BkyAgFQYYpqi9AojWKceIiP2wBaBaScxIYh2
         | 
| 2536 | 
            +
                    aN2BgLuM/A7SiZEjtFSg9yHaK7DMsTfix4F7NcSGSQKppAdlHGJLHq7uA2T2
         | 
| 2537 | 
            +
                    UCkFDCNuusBBetBSyrOOsxB4xCNhiFWiCaTQGGwpPyyQo2Z69vgt8Wjaukcp
         | 
| 2538 | 
            +
                    UXcOZhUMVV5+uXdOF1ko4g/eOi8NXSBSbgvlwf7m7tbOz19vbC45fgif3Y5w
         | 
| 2539 | 
            +
                    W+bypyxu1OK/Do4BKcQ6XooEmEYUaT2KFp/hDU4nag8Q16yWIMnyagSVDOUT
         | 
| 2540 | 
            +
                    MRPhOInCYfhdv41MBagYJgv+DhxLsamC5CAJRwbmT+c+/ADC9dyEOCqITRBV
         | 
| 2541 | 
            +
                    xJ3CdjBALuaHUHDPT9oDMNABBBBgbkwyXGt9Z8xoe7CQgTPB/HRBTANm0Trd
         | 
| 2542 | 
            +
                    j2MAGWaiPyCCc31skVQvbCLxwWp3Y+wYNNJ9YPdaaIoTwvV7WA2BikKPAEQK
         | 
| 2543 | 
            +
                    BIsdf0pHPA8viAuCuM5IGIWoCxokNElrEoFDqGOvD1NOThDGqJ8Y1Q7YthMP
         | 
| 2544 | 
            +
                    whAbe4PCvx1AVw78BRMH/z0ftIhSZO5AN4taF6jFLaMh/j3873Dn2T7uurwB
         | 
| 2545 | 
            +
                    uJ6QcA5ADCIBIv76AyBGkHAkTKHfFmoSrA6xRwYn4gfqR+t3xEW6yGsLwOsV
         | 
| 2546 | 
            +
                    HF0ZXbCujlAmYmudiEdGIgsWhIMyGcUxVOsPknNbd0pMW9J1AUUR9Ey6upN4
         | 
| 2547 | 
            +
                    rE2AHEV+1M0koBtSKbsqTLVu9MdsPArdE6yPJPCX42rxxDNQRU1HFBxqPRl0
         | 
| 2548 | 
            +
                    kQAKgyeOWdOViAYeqO9JU/NYkdqNej0gSaYHIahk0IJ3I9qepeUxcC6Iv9jS
         | 
| 2549 | 
            +
                    4qqOLBzFHp+1tS0jKoDWggDrqGYa9f22tNTM9I8E0cX4c5Mkavs8zVqv7PKC
         | 
| 2550 | 
            +
                    phFlXTK79xE8IpI+cBH4QvOX8bw2DRJWX5K4Z57MhGomg17PjYcOMuYmaxiy
         | 
| 2551 | 
            +
                    pBNbNw0HaB9XYY4RTFZaYOEAI02H6A2juUYFICRwfVDPoAUQ2ywRZT0xDIIP
         | 
| 2552 | 
            +
                    N0gi0RKJHhxLdiQqU2jYPuTVQCjICFGzOMCAgke7/dgRVnT5YVNJOgw8Lvxl
         | 
| 2553 | 
            +
                    qV8QaVi/Y4kL61uX73dwOoB6gXciFx0Cu71GOCrAxEgFbqbDvvfS/EISeV1R
         | 
| 2554 | 
            +
                    IgYAeGpJKV0gWVxSARDloC9d0AA2H60C+B2PhCr74ICxBdBjJ476fQ8b6uIE
         | 
| 2555 | 
            +
                    gNp74SIqfNJnu/WONKPLdbyWD7O0DtTcR0EB9NF2cdiozvAi1INNtHYqa40B
         | 
| 2556 | 
            +
                    JQ9kwvoBsyFWCIFOQlWJcJ2kyCoquiuREY5zDJIfSYZJCrUf7JOpGyEgDZ5V
         | 
| 2557 | 
            +
                    DepQXblDZNlR9goVdWSGyP+HgEGA0SUuBcIpEnCQfkADFkuiDZ3HohER0UNP
         | 
| 2558 | 
            +
                    TtsVu0asvyRirRgZv0Vl0B6o96zJ4g/tkXX7fdCvjaZM3EOzXaj2HA29Yzb0
         | 
| 2559 | 
            +
                    gIPsIGK7WjtdSHL2kREd2lAidTYzf6LQeclNZ26Dq6t6uTARl0CdrMVOhKCK
         | 
| 2560 | 
            +
                    LmxbMNwcT+CVxyYjDRMVQ2FsHb/bTRzQU9GKIjVU9A49GaKW1NWPYgLJ+M+J
         | 
| 2561 | 
            +
                    JQYRGgG4eqFdH9U9LdeNEiGarxYqJBqoW2s9O2KewZec8aw5QA8VU4utk7QO
         | 
| 2562 | 
            +
                    mL2jD6YDwi2IXKNxMM/MRA9IOVDgIrYNaQ3k+qnCSiDtRpQkHJhY/KgNl9rz
         | 
| 2563 | 
            +
                    mjk2mwBks5mvYpwP2vi3m6ir72Ul2m8T1tl5IV6hBQv8BrBINIT8FVSMxOuQ
         | 
| 2564 | 
            +
                    3APqhRkHiIlr+QFKoXxbxtC8AssKsUJ2DBhMfayhh8CWNX27dGM/GiToe0ki
         | 
| 2565 | 
            +
                    8RE8UM8iaMLSDIHGM1cYLj8WR2e8Hm1iplG//An0EbIBsRQQzpQeMan2FVb7
         | 
| 2566 | 
            +
                    CqotOeT06gO/YzXuySBsCxRIIi9CAOCUF+FpTk+DvxOYh0EfJwY0NjDQET20
         | 
| 2567 | 
            +
                    9J2X2UrF1zWJgMiU/9HFt2wXXELF2iFPBJhXPn1C+HVffph6Z6LRcb+ZwoCb
         | 
| 2568 | 
            +
                    OrSGWuiVoPUTn/EChL/87jAz+IkStBQNWeLhYJWAobUW7FLbY9nasEzTQZJp
         | 
| 2569 | 
            +
                    5LTJ5LxE86AVXcMIbI+E4OVGRLRgsUfAgTQtE0T/FohYR03Uf/04BQP2++ga
         | 
| 2570 | 
            +
                    lnD7HFQFVroAVKTROBqcnTseOZbMfpPebUQ4pT0UgKQK91y2atm8RqcFEq/D
         | 
| 2571 | 
            +
                    fgJGsWXgmvWfKbC4JGidsUMi6XtttIVwE9PvQx+IQ/qOKmEeJKJhe5Qw+8xd
         | 
| 2572 | 
            +
                    iJF3iPm4KgRjW7cGoLGg7Rp69dOhYYyuevrT8XMUfDAfSEBkewkrggYdED8g
         | 
| 2573 | 
            +
                    zGNSBIWAAHmZc2RI8I4CRuNGDyCLhj6ok4A+ILEk9c+oMRBnQHldXN6s7Kbi
         | 
| 2574 | 
            +
                    /RKFF5rYgfo4GGHomsqIQQ1wwTFExgY0iikLFvzpkHOH1NZ2BLOMumfKeh/S
         | 
| 2575 | 
            +
                    WwpiEGeV+FF3QL3IRNXVCVt9wbCqPRu8IlDJd7WNB3YmiBoyOW3wQLW1viCc
         | 
| 2576 | 
            +
                    zboDDSLzAxuzyiYPKc34kRtmt14XWJhZOpYBAJqpg3gEMGigrMl66izCTYEk
         | 
| 2577 | 
            +
                    57RCgw3g00qEgCI07fBA6+ixSnzUp1zt78WtYQM0gqRb6LENotpejC4aRAjw
         | 
| 2578 | 
            +
                    ESnkazuYNCOkx0yKifGCFoaMNMq8ssJe+m6cZjp6R5yU4l/1kzLg0KWH+pgD
         | 
| 2579 | 
            +
                    72AO0Sn71EXOpq072xOEa7YXdZillbbn+Cj4UQekrlvAPC4So8Mp1OESxnaq
         | 
| 2580 | 
            +
                    rb0rpB7WaHDGwPDyz2B1BeI6I/pGLgx8wY3bYsVqVzsbpsrohmJxorKPbMFP
         | 
| 2581 | 
            +
                    M8UBoxNE0MUsSInqs1WaXGhFiZTaPWBmAaquC4kDSgvBE/ioYYhT5gFtu567
         | 
| 2582 | 
            +
                    ZFuog+NdovjQk62cXZyAY3L6O47eVituByR6SRU3BTIfT+b55yHxbhv544S1
         | 
| 2583 | 
            +
                    UhPA5Tx0lzFsuEA840di5ZL2v/I9gYBgrGppkndgEWttxrzF0Wk6Wp+kZeOS
         | 
| 2584 | 
            +
                    NBuQB6hJGx5NYqOybQHMxuvQjobWV2MPFSDH3ikRd6WWerKXAsvAPUM1kXR4
         | 
| 2585 | 
            +
                    dA9eot5I9Ax2gPB/AE04BNTrR7JbgMShe66rn7CBK9wyCHxPb1HiQnKIet3O
         | 
| 2586 | 
            +
                    UCyOHonsqoE1dRkfTWsWYYCAQy9g/ug0zVtAL8esiOfS2gitiuNbY85lbh9K
         | 
| 2587 | 
            +
                    h9QSLxnPu3Bw8q6iKsiQQmvtQRzjhGvXXXsIJhKT2bG82sVX7IYE9oxrUeuK
         | 
| 2588 | 
            +
                    xS3dzGwBJPxc/6X+/+roHPyZuWjP/ZW4MbUKCCGXIS589nzzPgW7/1MfFUQi
         | 
| 2589 | 
            +
                    BpBsICFVvjY6BH+RVilkqNAqyEUgQWAztnBi8hfPJDXx/7gJZoBlTfw6AFaS
         | 
| 2590 | 
            +
                    1XB2dKmORgXSqJupkmw+heSaRO8HGlLaM+LVz+pOZaW+Wl+vII1VGvWv642K
         | 
| 2591 | 
            +
                    0FKHmQKtPu2cDb3r1O6Ive7au+id+WFCZKAq/68io+DOxO8a00IVi023F4HO
         | 
| 2592 | 
            +
                    oEHSO1bmoyYDw+qlM5wmdPrJNMCMMN5NJ0gSAmkdbXuepryla2xSItZBwrsW
         | 
| 2593 | 
            +
                    wNiAsbbRaWHxSPQD5JhjXdmNJgi2G1hNCoQtUgNwxGce+YyIdxe70Eq9+j6I
         | 
| 2594 | 
            +
                    znKmtG1utODjEq+FnI2iHVWo4AxpYSRe5rFhGiBxgBwIHQ6wKFGJYrcDDc9l
         | 
| 2595 | 
            +
                    hhmicpNGogCyPyTRyKeCph+O40LBYOBFtORc/8vJEBbPMtpiZCMtkU2ouFoN
         | 
| 2596 | 
            +
                    KGz6qlh6SckEQBNUASAg0UTgjxVS5BXw43a9G4PZgu2HtKH9clePJWMYYKp7
         | 
| 2597 | 
            +
                    Bigz1uLO+ktCxfTRGljH8Cas+hIYU2fQTsk6HDvfXFVErAC4a+8C70ULzET2
         | 
| 2598 | 
            +
                    UGUG6e085+XSibSKKwpvFlBgb4mposJQRd3A0Yawxruy6X7GKXOYdTgvx07P
         | 
| 2599 | 
            +
                    zeiGltx02a4LK+BQnHOZK5BdBxl/EPehWYbymy1FNDscYw89z3tRPPwvbjQg
         | 
| 2600 | 
            +
                    1aM6ok2M3P673wXZ7cguc+xf+rD2QZG90o4t9ohEqjPoB34brRfZJ/ZD3SrH
         | 
| 2601 | 
            +
                    BDgrjfrK+leq0onaFcU+CwRTNpbQFYB7BG10U9Xz89vhhlGiGAfwInmFfS+h
         | 
| 2602 | 
            +
                    jWPzWjihUefzrnV2tomzmPciAu+S9u+Nu56lih2BgPLI7jsp7bFqAOVtBlHk
         | 
| 2603 | 
            +
                    WlFnmPexa2AWk6Wx8DjobdZAicojGm6+EbMHpb2t1k6P33Uo7ETjj1ib3S7u
         | 
| 2604 | 
            +
                    bHnXLuqV2+x5p80y7qDWUws6NHadgmxfEJygx0ZRYLguW/QxBiQHQ2qDveP1
         | 
| 2605 | 
            +
                    BXsOUaF/mUUXm5XgtuNe3/aiZmWWkD3DYiSnTfsiJxXrap/cJurJbqOxVc2M
         | 
| 2606 | 
            +
                    LDKmJSKAYAoBTU48CNBEocLkKL9wMTRNBRH6BHTsG+pnqAPkheWX4rntfOlo
         | 
| 2607 | 
            +
                    5UDHAONu9qWP+M7L7My3ig5Vce+7oQOCEFCL+4dCO1DQA1LruPHQOCW8tJ2j
         | 
| 2608 | 
            +
                    fmO2umneVwLfSH1DcwwJUow4A1TXuDcyus0xhzxCLVqQrUzTlYN4wMHv0UZC
         | 
| 2609 | 
            +
                    lWNDMrDI1ZEHJ1S7gMqjk9xQ8LsxNY1KaxQnXi89CRmvx60skoQEO9hCJLTR
         | 
| 2610 | 
            +
                    M2p5XnQzHOolakZOqXYKUYGX3ghY1hK0ky3ED4WLX6tYSliyY+11uSPqmpgC
         | 
| 2611 | 
            +
                    5EzTequ9o6KZRt1YkTTEcWCQ0cQNZW6sTD11clM5j+L+Mzx2/PcPXg99rHfe
         | 
| 2612 | 
            +
                    x8T8z/WR/J/G1uo8/vs+HpGu2/GgNTzzeqDxwn/Vgr3BsTBf6X/ep2T914Oo
         | 
| 2613 | 
            +
                    fXGXfUxY/+tbW8X8763G2uZ8/d/H88P+MwejUXpR6m0rUZc1M6hH8dkyfMYN
         | 
| 2614 | 
            +
                    smSbtG7y+F56NUBajbY73VgtNuob9dUl+t4ahOEQ32zVH/Eb8icsolW2qQuZ
         | 
| 2615 | 
            +
                    Yt89Vo36Zr1RVd8qcpbp7x6A4Cfy49w/O6cAIyy/AuUf6WK/JqCY8Nv1+jq0
         | 
| 2616 | 
            +
                    wt9X9Peefx34rRrucKMLq826GVdYy3qTYu3Al28ro984CEd/Xi18DqKzsc0m
         | 
| 2617 | 
            +
                    YDMFGJ8gb6MQdE/5AX/WkuRcLf7fd2q1vpq1Kx9qPbAAfPqcgyo6d/0MfUtZ
         | 
| 2618 | 
            +
                    UFGKo6CAW4KmQViBP7ayUmnseWnUl0bXM2wOBn4nBaNL433o/hrUkBZ0/3pC
         | 
| 2619 | 
            +
                    /aADinEbt7Ngptfqm7oFMKylLEypACAfUfuMQWtdxHdf8zueZbW4moFHLaAL
         | 
| 2620 | 
            +
                    Vf/OUkUXc1Obo5AzsD8uQPFlNK6sZMXO/CSl12s2+sLoIjrzY+gKYdzIPvRj
         | 
| 2621 | 
            +
                    Hmyj/gjIcd0gFowNQdc4LK6YNkbQpps3UBKIG6VELNhisC2Yz93knFZao74q
         | 
| 2622 | 
            +
                    RJItC0KMtOevfB1iOYMqv+92OrHMlVli3CmOXUYElBq7MQZwcScGvNIVT5S3
         | 
| 2623 | 
            +
                    kZErL3J6myFCA6gxhlEmjFwNLCyb9RjBWDHVwDA7jzpN0UuIkchAen4PoBj2
         | 
| 2624 | 
            +
                    wRjCGo/029IlXrYQoTe7Ci33lWzRFVa6tcztRU5znXut1zdX0cOgVc4TIa9o
         | 
| 2625 | 
            +
                    Sbf7vAIMHRkOQASAGb1WaXxvsQXNFHD3/orXkk3UN7ekWYm1OOwaQJMjQGUd
         | 
| 2626 | 
            +
                    0cxCk3ooZv1Yq4d5EtDdegaTIb4RTlvGXsunS0ns36C4vuh3PwqGZxiARpxo
         | 
| 2627 | 
            +
                    jTumZVxYw4YBMX/K1l+B4ohAtzIkJQGucsIQyxglnRBTMEjL8V5ckFsZ9WV0
         | 
| 2628 | 
            +
                    y+JDFjm3TM3KCx4nvjNry9bEc+SU54155iTcgoYCa3lkRY5KUmv5j9Sy1wv1
         | 
| 2629 | 
            +
                    Y8mpS/csRsemxqr5MJYLMhsgdUC/0ayU1pZpQc9s4acQ45qeISO1iK9qCjBw
         | 
| 2630 | 
            +
                    5aa6lJeNsDJbvBEy1opiRwSNJVSZ7VJpa4aYy9L4N7I2hOsJWswUGP4gqBxl
         | 
| 2631 | 
            +
                    EXklwcKwoNd5/nTn9MnR8bMT1OlwhTh7+8/3D/f2D3cP9vGlTU1k1tn6/9OD
         | 
| 2632 | 
            +
                    3f3Dk/071zEn5X+vrK8W9P+NzZWVuf5/H4+68cmnhjrjiv1XXISrqPb9yw0H
         | 
| 2633 | 
            +
                    6GleBcuuvIa1O8fnQpCdIcmTybLjnO4DCaudwz21e3S4d3B6cHR4ooCu1YuT
         | 
| 2634 | 
            +
                    /ao63n9+fLT3YhdfV6nU3sGJHFxwdOg4K3W1ZyLpEk4MqMgQKio5R7d9z3ND
         | 
| 2635 | 
            +
                    K8tUdms5qJU39wYYKRB7sq+IMXnYDhbs+Im1a5Nw2B77uk+8NrewouMa1SN2
         | 
| 2636 | 
            +
                    21MiJOdn5SCK4hGQsrS76Cr0cC9eoWaTDiVS1/+dOnOIl44W53CwRBH/08E5
         | 
| 2637 | 
            +
                    MnzdtXfmBmqfGh3pfhBa6RqYRgJN6P45SQXbYJc/vfd1UB5tZ0VBVekUX/gR
         | 
| 2638 | 
            +
                    EKwU+EQxAZTey/sT2IyU0tvu0Ah3xRsFVtpHkqExi5KkwUgTFRoBcGZ/ietF
         | 
| 2639 | 
            +
                    VxgA0aEzbBRFMvDfVdpKciW5F5vg9zRqDFQL3TOOkcIwBNxhYZAwboQiDnCi
         | 
| 2640 | 
            +
                    qVOXGjbYuPITivYEEAAGmozk3O9TmpvfBfT1PVAwUCZtNL5Y4r2UWEdiUCuD
         | 
| 2641 | 
            +
                    lBIRKN3h3KXweW4O2mt5oYfbljBxuaYtCGV2f4kGFbWI8SfwV1xZsifYDQkP
         | 
| 2642 | 
            +
                    l35ngA3FyiYFrO1dA5A+uf8B3J6f8DYnEZPez4FJyNPTCalOvNtaJKd+7HW9
         | 
| 2643 | 
            +
                    OPY6/LVLKKYta9qjEYU9obnkLXb8BquLNkwCv+dLfIvJwjapFB1Ady7pEdvg
         | 
| 2644 | 
            +
                    r1W9pK3QXUqgEYiPWhjGNAoxhsvSO0A+qssYB4VxqT0P92EoRRKXHWAjyfZ6
         | 
| 2645 | 
            +
                    kFLxTeCmJmCIUaJ4+y03LmygMDQMifJxpUQElgztDGY8pp3Q3CANH+JwcZ4f
         | 
| 2646 | 
            +
                    DF+TEJOO7yrSNmWoGNkyssgpHRsBJY6CtJSRN1ioAj0TN+NKhkKxdGXp+kIR
         | 
| 2647 | 
            +
                    GPBgtoI5R4zXuWZSmDvV9gyXspJHiUfYKSgCJ9ZfxFgrvW1ohanLZtdOn6Le
         | 
| 2648 | 
            +
                    rjFaL7pakpHvebF/CTi79Ci8J6kUZxpbLx+3DBqb4XFreM323yIFbEMHSNkx
         | 
| 2649 | 
            +
                    ZuUiINiPkhxMiTOTxQ3zgkm2bkDhm7KVj3FLqSwA5WWpn7zwZUbtZYItoVDy
         | 
| 2650 | 
            +
                    EiCHKoePX51HARE81PHPfEyHGJ3eUYZKHKebW85VVUSZYAzpVce/cNgv4SP2
         | 
| 2651 | 
            +
                    MCWHVp3Xd/mQKMQFQd/zYkxAoHwYRFYLY0iBHjAjbknPLyZHxF23Tfy9qkWa
         | 
| 2652 | 
            +
                    weIIOIgRL+rKBNuxO6WTWyRxsxB1TwZj+SC8DAJsKTcDklTsm+mgkQAyqArt
         | 
| 2653 | 
            +
                    XpfDXLVoHg8Fo0QAjmWQ4Hsme60XEAkRwImVC0G9mF31nOSnCY0lLXM8l7e1
         | 
| 2654 | 
            +
                    CAocoCxXO2t+jGYxnUxWFTOaCjbEUtnwVahB++txBNy0imhvuQHRCwaepHQs
         | 
| 2655 | 
            +
                    B0UtiSMH6dxg2cuQQxHaSbYWCOFJ9UYRwozIbh3+P4MmF5WFmWuZnDF6imQh
         | 
| 2656 | 
            +
                    Gh4M8nEg2XF2kqJJvGJtwqhANparmjPkJryQ6dqRbHo5tIMjuLVS9xOxLxEp
         | 
| 2657 | 
            +
                    3rUeeH6ImujwNLq+3x5EgwRWZc+N8cQkzWRQdSFNiHL0iXP7WShQObkh86lQ
         | 
| 2658 | 
            +
                    lEIuhq5eKazNgoZrRqtX1836SO40B+B0vUJ3JnsKI1s84sYArt2JLLDEHBYF
         | 
| 2659 | 
            +
                    JKJPeTBR1BqdwFhW6+oHch1Ah7tmyFrhUScDFoc6xa/MftBLyOasHp5YYB82
         | 
| 2660 | 
            +
                    glwBQCXNigQ4pp67qHX1PUyXIhoDJhZ0rnxUB8IorNEk4ymL+LMGKkmMwWZx
         | 
| 2661 | 
            +
                    NHSDdFjDcExYAaBsXUZtZMZ5yWsdjKPtGigO66ePlDrCtoQf8zEXgDaJv6xm
         | 
| 2662 | 
            +
                    bwBUCS+iNyL+bQvJqNiGn5K6OtJXiegldgHTsWZNx3MXGefnOxeLnIWHK4fS
         | 
| 2663 | 
            +
                    +UR/ofREMkCWMMgbh2jNFUZBycklqHwRKGScRt0u6l6YTBsEVfkvHwfC02CW
         | 
| 2664 | 
            +
                    tiisoqkR26AB4bB5RnR/mOrse5KFSmhFRiRAtQPXBwRzWT2mlmSy2eg07C/0
         | 
| 2665 | 
            +
                    0IvmxnzeZjcGbmKCwnwSWPZaXkyWwLzE0zoiMbJ6oDQYpZrqFCvQOHTMNlEZ
         | 
| 2666 | 
            +
                    QM2KVx4saf8Kca8FFMXrwlSz7ZEAz0GSNVNAaXJk5GNKCSUiD7UpvJgJGlZw
         | 
| 2667 | 
            +
                    4yhJaoQhPmVrgJoN/6YsjcC9SgZ+iiMMMLD/zAS1EdgivAvM7SZWRRydQU7E
         | 
| 2668 | 
            +
                    hJVGrLyroR6Nxn6P9EbKI8HR5MmN9Blt6skq0Bp+tn5ETmmVh3k7rj2cK6IJ
         | 
| 2669 | 
            +
                    14S4U5yZUJhBp5+QLYaH4qxj1L/tUKlTpxjeZnhUkaUAR/O17pExlxs0L87V
         | 
| 2670 | 
            +
                    GJJtNAB2xQcoxSZvHLWUnC3KsnYMT6pm1gchQein53k8m3w+BgtizYU47HXR
         | 
| 2671 | 
            +
                    XeLRYdLJmU/noAyVPgml7fdx8yDJqaBsgeEzMjjXOqcmm5xvSORRby2rNznz
         | 
| 2672 | 
            +
                    wSizaLTQeRLkC4mRTkBv90MkBrbQ9I4NcSpDrnRcDkUkcko+NWL12bb65JOk
         | 
| 2673 | 
            +
                    qlpztSxiUssBluKYdJemq2zWqxJtK8KsKpRbRdbW8VCdqWphj48+qpYCP3k8
         | 
| 2674 | 
            +
                    WcJ7AZIcT1Q5VYrZn25AsjFJq+xzEiaFZdI6ovTJbACjAtXCUmcJGY+ZZHPa
         | 
| 2675 | 
            +
                    igsK1dHpwe5+BdbTdUrYxcWkkzMxHVl6sNeMtZ5LlsAIKml2dDvaqnMpp40s
         | 
| 2676 | 
            +
                    OPv4ozI8Intx0eOp2xDGRMuc4Vecqz0FInUb5fgsRSRRFDSAYapouBi/tJTP
         | 
| 2677 | 
            +
                    FiDoK9DddpYqJ9BlyM2wkpFOcmPv39h8OEdJZqnm3TUY5mw4hkux4EZgjTYe
         | 
| 2678 | 
            +
                    xdUCWl2teVkOIdHISzDTtVcBCXg6p3tAjgg/7tRwbEMzEyE6sShJq9/33Jjz
         | 
| 2679 | 
            +
                    a3GCkRMV8GpNrdKh2lbIM6jtmV0Y8mk7GUaKUdlGh9PsHg/q+sWcUJWRnW5C
         | 
| 2680 | 
            +
                    QyxYmYbQq4xuzK82QyGzxaVsCy/sDHpad8xRhmYUbGDpyctxJw69z47BKF0o
         | 
| 2681 | 
            +
                    5N6hU2lQVMeDHJExMkod9KU4yRR50h3JQ80yuuAj0ojHFkwSeAYp+q18VB1z
         | 
| 2682 | 
            +
                    emaJ6izOr5KdEG7D2gWJuiVwVGVJUHB7OByj+tsuLLNMfpGs76r2d2Vdj+zA
         | 
| 2683 | 
            +
                    5MSl0Xjp9Adf6CVzaBizoKB/Z+jfILNCHN9sA+bOfHwRBrgxjFPkXWMuko82
         | 
| 2684 | 
            +
                    pZzOYbYB2D8wLGpzlt/HcvqMdfSIfv0LH+aT83+w1tUaPTB1CvNHH2yAAFqE
         | 
| 2685 | 
            +
                    wfVZf+zozTOoDDY+1jBbEyQXML0BDZ+U8r+Rz6AEIKCSATDzxOt4WbqIngDp
         | 
| 2686 | 
            +
                    gqU/+wzT7NjU7LTIoSwAsnq8a6+tGTRxToOE7IDBEV0fvd+bdTxqkbUDfVqn
         | 
| 2687 | 
            +
                    1mHxUAXiSRwmkO112Ae/km5B/nq3h84lo2ugd8iLL9GRLT8xVUtSEKmwJksN
         | 
| 2688 | 
            +
                    a1V8NGL+6Wwfmns+bYeP2MfZA/Ec4YlsBIcfyjFqLcE9K/nothxxVuqVomdJ
         | 
| 2689 | 
            +
                    GHkJAwfsbNXprEa0UDzKLfoJ9EDAxdDQuAGyNWTDkAxZtGRkZdOEkaWQeYuq
         | 
| 2690 | 
            +
                    2fSYgwgMkIt0cglY3znTzy6KTr3cPC4pOp1XVXZO1MFJRX2/c3JwQtj86eD0
         | 
| 2691 | 
            +
                    x6MXp+qnnePjncPTg/0TdXRs7xgfPVE7h7+ofx8c7oEu4vOOJZ83IQPwiUl0
         | 
| 2692 | 
            +
                    LLdhtjrIb+hqpjMEy5HQ43uFNSJ+9NOD06f7VcDxYe3g8MnxweEP+8/2D0+r
         | 
| 2693 | 
            +
                    6tn+MSbZnO58f/D04PQXIpUnB6eH+ye8p72DDTzfOYa5efF051g9f3H8/Ohk
         | 
| 2694 | 
            +
                    nyUj73cFHp36QEcVUOJ8lzYf2OayyMLKVwppkF057YeILOOalv+Q3XBJAgoL
         | 
| 2695 | 
            +
                    jpL4rZ8QX5bDB+VMF2LJsjtIrkl7e3DUSAQC+7oOPzQOscZT3235Ae3uHqCU
         | 
| 2696 | 
            +
                    pOx5OYmDGoBXAfn/ADqwXbWTQu/OpJjgZhneoXcW+GeYW7pUNTuy1ZxTk70l
         | 
| 2697 | 
            +
                    E8l5UWfSdbzAb5GSRWCdoVXPPnrdWYp74pwNWk7+zARzzB/dGTRBga8PQMPJ
         | 
| 2698 | 
            +
                    pVl0e5JemfkT8Mge2arONq3pkCLxREFZzKlNxXOO2gV7N3F7SVrUXBYdUwAx
         | 
| 2699 | 
            +
                    +mtj3tdFictyFbc4iwak4kNYNc8Y8Bsw7XnqLPZoTO/FG/dtNTw42iBiqsQT
         | 
| 2700 | 
            +
                    gTATTfvVLkCARv0+pc6i5B4gvHikCyb/0Y5xoA9P4lCCsCQYAf3eSJ42DrhL
         | 
| 2701 | 
            +
                    D1Ng6agGvzvircIGjBPZ7Vz6tMHXlSACIHAZuN5rl7aBwB/V1U6bjtWCkWvu
         | 
| 2702 | 
            +
                    iX1ax6NZNP/TOWrO+XWY2/G6cfNI64TZCXbk/8t2g8kBSec8E3+o4oE2AJsr
         | 
| 2703 | 
            +
                    qdeSk1nVfGxIxOX1MD+8Ko4jxmOgQVZRKxCfDekVy8hG+FDx7G4bbcxwLLZR
         | 
| 2704 | 
            +
                    6+WcQLbVDJIIgVar2bAoliIMtM/faL3i/Cd3prxGfphxQ4KUNJFsr0BYcuZd
         | 
| 2705 | 
            +
                    saZbXKN0uleXeSwuY17FhI8u46PjdcFC4OJ4CHqJ19iNe8RZtIZrMCeLdBDH
         | 
| 2706 | 
            +
                    2d6PeE/x9ChKjRWnYnXUfdoaikog46Ak2QyJRpe+skjO0uMMFECi+4d7KAbL
         | 
| 2707 | 
            +
                    AqocZ+c5xgYe/LyNs0WWNx50KRvquTsB9Im/V7xFAmCdTlm6Klv6ecucFNsI
         | 
| 2708 | 
            +
                    lkOMScPaMVDNDGM6LAfvDuDzDhElLTpYCGiv8vJ1RewCtO9FPpnTjYkzimVl
         | 
| 2709 | 
            +
                    mad1tUiHOmiPh155utm/Lyk5XOo6te61MhCIWm6JWL2diItADoLVO3hkI3PX
         | 
| 2710 | 
            +
                    sO49PugW+DiVFr8h8WAqyMQBdISaIxs4+YNz9YZgy8viJcwNFpzpWwGYyG2L
         | 
| 2711 | 
            +
                    TLSizDnJhbALBBCze3m3WFCltwqNYyPzE0jALHK7bC/s5RCe1+olgUsnEuc2
         | 
| 2712 | 
            +
                    Bl/rGyO8jmWd5GmkascMqkUsYEL0lr5xtP5POdOJnKZGuBIV2pdDDn1ib4Zs
         | 
| 2713 | 
            +
                    jPKh2UrUIq+Sm3NqmZsuUj6NYEI8ooTF1gBSx5lGNR6nGEgAk2M5nUYDaOjK
         | 
| 2714 | 
            +
                    BKtAqfb7nqqv1nvrzonn5TrXBGyORMQr1gZ4Yt8ZHt0XFuPC0NWQKcrJ6HDm
         | 
| 2715 | 
            +
                    aeKf9mPHf5szETBs/Q77uDn+e211Y2WzmP+5ujnP/76X5w/ggBVk5JVtVbGI
         | 
| 2716 | 
            +
                    oYI6UMWSQ/j9APQVF6+2sYMrQc22rmnkeuh2bRYrP3t+dHwK3ErOnDh5FT4u
         | 
| 2717 | 
            +
                    Pq/CV6GcmBFGckJF5s7PrsEpHAAvB2nxwRS4yyvhyGwnZeIBk9PsE9CwXh37
         | 
| 2718 | 
            +
                    NKdBHXuAC+jrVVgrPlju1D4yDeW7h+cxXoTks07UAiJwIbMmEuCyKKsQzCvr
         | 
| 2719 | 
            +
                    SrBtbOtLvn6SU4bMT8Y+fj+J5Kx0OaqQTjb32PHqsy0kB47xPj7dfUFOIDzh
         | 
| 2720 | 
            +
                    JZFI29ClvWY+a53OeWQfP13P+KZwrh00zE7FLMATW8EDEUFwdRJzdh+bB/qU
         | 
| 2721 | 
            +
                    aIR2x9wNaaNO48y6OZLCAtBD1ifdTR/5zX4KvjSSUTJ6jeSbOhAZHwtnNUjo
         | 
| 2722 | 
            +
                    kQggvpAhO/4YK3i5jSzPxFpwrCgB/9xNzzXc+nf+Ck6Gm4+GYan/XB/MhOeG
         | 
| 2723 | 
            +
                    yi0nTI36EG3bS52oV5XczQyvKhIZje6L3LE4VTmC7yleMFpoRDsmn+C2K8Wa
         | 
| 2724 | 
            +
                    qR9Bl0MtbahO0EEL01TNAk9ziE9TvKuBQkpAYrcz3GiAzVlTRvrTPaZWG1oJ
         | 
| 2725 | 
            +
                    HkEmofEAzwM+wfsVymhA4xMDBfkWBgpLw43Bwqk6Go4MwgFdWKEnLgrZCmZj
         | 
| 2726 | 
            +
                    yG4wm9JjXgUGEA2FXh36/FObc1hxK2AP5e+HpSWLyiK+296G4ilMjNsX0lS1
         | 
| 2727 | 
            +
                    73KlzXkaNZ95pl15TBVB0GjJJl2bOlLevlOVGIanD/fiIY7S+d7+ye7xwXNU
         | 
| 2728 | 
            +
                    EXPMl5FTODF9kOjgdOHzeGwr05xc2mbzfbpdiG8D6Jqzr7MTcnFzeTxwxa1E
         | 
| 2729 | 
            +
                    nGG6woxMbgwI0vBAEZ7e/f+8ODgmD2tBjhA7R7g40biBKUn4X+VnWjsveqGy
         | 
| 2730 | 
            +
                    jFY1jdi3DhNf5FBiNCNwqXjsDDLHXWWnbLrqRWsQpgNlDrHiXsXu8+SEJYmb
         | 
| 2731 | 
            +
                    4yOWjoFQfsCYUSEUMVaP0vyRWmjMEBjoYWMSTfX9j5TVJ6MyvL1IVm8E9YUR
         | 
| 2732 | 
            +
                    4V67Xvb6LqM0jwMO6ZfbxORuYTYvd6NB+3zve7XMVwzXhQpFvE11yL+oFHjO
         | 
| 2733 | 
            +
                    P3b5FXf5FYkDeRMFETZ4yAoBUAWf+aU2ELkse1PeX6ZRydVrFJkr5w0jjnNy
         | 
| 2734 | 
            +
                    3hZSRq6XXAatzN1yxcgefXYb7RXL4VrAr/BAepyd3P6O5q8Wo4r6zNAX9fXP
         | 
| 2735 | 
            +
                    dOi8n1ZVx/V6UUgJrUuCSLef8j+43lfxTypLOgPOQKc1SZv4ki6QSJIA/zzz
         | 
| 2736 | 
            +
                    EFj861eQ8/jvdY8+/B741JJHF2vjXxo6/NsCDH8O2knfr6XtPpUb+EGnBsYl
         | 
| 2737 | 
            +
                    +6DtRkA1OOXkvLzGV6IaDBIrw8hMQZY2lmra1vpApkjQ7NL5hdn1BkUWbM6+
         | 
| 2738 | 
            +
                    SyRSS+6SzIPAq/JfJ0eHvFFGMqjZPH7x/S8/7D87aR4cnpzuPH26g0y02WQt
         | 
| 2739 | 
            +
                    q3A/Ro69qBMtTMtVpNFHYyYjt4L6dJPM5CBbPCBbqyXlWtCysIV63JLdpJy2
         | 
| 2740 | 
            +
                    0xpaUjgPTMaTSCXSR/1pWgVVhKiF2B8RCrFEolqvA8uXiBOvjSAy6nqdKCYi
         | 
| 2741 | 
            +
                    5HvV8a+EDudEnGnKbSUdKhx7nvzZc9uvXjWhjVfNa+wZ7ynB9QW/E9ZARKSZ
         | 
| 2742 | 
            +
                    IRsZIsEzb26U15pdyraxaET6Rqxhn+wHXtAsEwfWZOTkYoHIyYtFPFg8+QUN
         | 
| 2743 | 
            +
                    pmxSKchfloWLMlOhMyZG9x3F3xJwQ1GHXLwIJqQjC3EuWTsf4I4yno6BkQd6
         | 
| 2744 | 
            +
                    5xAPuabptuZO1dQO/EPKZ1Ufkp8UXZ8qbtc7xgqEP9nSS+ydI7EwAKl1bJzG
         | 
| 2745 | 
            +
                    WDNnO7KgrGL0p/rRBb4nTB3bfEI0UVcvynpe9tK2Jt4q/4IZkEM7sDa9wt7q
         | 
| 2746 | 
            +
                    OsZxPFBATADTEVDY9yd7VfUE6Av+oGaeuW0F8PxczUIFQO7xidZymQw54nn2
         | 
| 2747 | 
            +
                    0YmQwitmkjxfZk8bL0g6M9euaReb28HNW1QiUz7bszuISeifg8GY1Eu4gJnY
         | 
| 2748 | 
            +
                    jF6K90fpG6F5QklMwAATdJvj7TcUkYsQsgkPYJ2xm1wQebl8sn/8XwwSILmZ
         | 
| 2749 | 
            +
                    nez9hprK7MV6QSLcTSdWg4WutCAa049uWxcb24MukGu+qPyaCR/i7ZJysOqL
         | 
| 2750 | 
            +
                    Ps0xTR8T77KmZV6cnGYDSzYMPX2ip1xnYk6eN3c2t4yLFRchZmzmeFVdszQ0
         | 
| 2751 | 
            +
                    wPDvF6L82kSM3gEY0znqHLxLHMVDUxMmDHihrv80amfXgj4/2NMrIzQpSyz5
         | 
| 2752 | 
            +
                    mLJ4MbNN11Vv8CVz1Tc4RPr9Jrs+ZUAXUpHc4W0TvqjkSoe3W23qqyaIp+jh
         | 
| 2753 | 
            +
                    GHAM7G1UdMqgF08Hamt80gozUtpZsM7T1bkPiryZeNkvbxd2yGP0Zpdsq11i
         | 
| 2754 | 
            +
                    GS+3sesmNUH9vX5TSBvOuCiChr6QQX88bPyd7zYlFJtdKmDUJBcW0QzHXa8q
         | 
| 2755 | 
            +
                    TKTA3MSyb+hUXgplyMFLU14CM3elgQ4EjjrrymGtf2sFRCshON5Bz00uWK8X
         | 
| 2756 | 
            +
                    pZ/e0OTxAPmWJyNWRYPWB6ggbReApwYAYli0b2jVkiHA9UAdeWO6jgP88wle
         | 
| 2757 | 
            +
                    afbi+MDQS066vhCJXujD0hKb0M7IpAIT4SPD97RXItH2CiIywFt9t9cbjQal
         | 
| 2758 | 
            +
                    iGjDiDWGKIjZGDQBbHKrVdWylX2TlWQLr9BLyUbBzdyEQ3leHD9Vi3hzRFUD
         | 
| 2759 | 
            +
                    gL3UxRmEBhPBsWQoEPgpkB8s+BLqg2+JtXmJ1/pqo5PyM93A/5324Tl4jacn
         | 
| 2760 | 
            +
                    t+bp3GHSZfxuwVUzaqBQno5wVAOf2/dxeQDPJDU4irPrLsSm3nl+YMLnAEkB
         | 
| 2761 | 
            +
                    BRIotHr1bLzBIb8xTV55YGBMaPQnr/ViimbXS5r1KPauQ4oSrVydDIznpV1/
         | 
| 2762 | 
            +
                    xTdwcPt2ZLjtJsDTvvu8/25CVKlRpE2tauOmOfelEJFshvCtURgcbOBCCgOw
         | 
| 2763 | 
            +
                    zj0XGU3i/+7lFqDbo5txAYoezIS5mBgwcfT0WGGtqlHnVzc2n5l2gZP5HSIX
         | 
| 2764 | 
            +
                    aFYsxVd0Q6m0T63oXV2zDYi3cDC31S4haYiPyudviYVlWiZSJoozfHvXfRcN
         | 
| 2765 | 
            +
                    OewU5HFCnIpP5Yb+6BWls5GcBQlvrrDG9nRltSgc1VykYlZlDQM4rjlWjM6h
         | 
| 2766 | 
            +
                    yy3vFXFP0Hw9J4/aFAxxojGWMylslxyyMmNyUrBSbFakeB9HyxcMBbIehkUT
         | 
| 2767 | 
            +
                    GDH1csFicQuvrZoqM4g7ERpJcRSlBX/HnmQoHMMng2ai8LrawViFMyQ2JFCB
         | 
| 2768 | 
            +
                    9BIZoikJC5i1Hr4TINQsA1SItmeVlyMAcHh+tlsjEgIPqMd1TFwWgUL3BEDr
         | 
| 2769 | 
            +
                    /Vb0yOWsODGANClqVRx980AF/hkqXycnT+mWNA5toBsuLfOHNR1U+qFcXT2h
         | 
| 2770 | 
            +
                    UBMxgXa3OXUPz4/DLZvAwzvWKAd8Cb+fnG5zrPcyJ2K3yY/ydJvEL8dMQWn4
         | 
| 2771 | 
            +
                    F18fbcOvMzf0f+dFh69e5N/B2tKunN3DbRxcRKeM0Cqsmit0yPtEtyf9Bi9Y
         | 
| 2772 | 
            +
                    a+xEdB9qbrkyZhef/GfvkMDF8xmCHT6Bb5sTd9opv1VyMF8JijMB4uKUngVI
         | 
| 2773 | 
            +
                    tzHFMEhcjpZ8RPnLNHvtBG1xWKWgiSLzigZx6aoyrIyKSo66XOGodk9OTPw7
         | 
| 2774 | 
            +
                    USOW/nWqhm9s919gIZ2IBlpsnuWVeMo0OyxtXu6x/BFJW1BN2LeWhdUiC6tc
         | 
| 2775 | 
            +
                    Azm5BaVBe//x9PT5iWIGkNWFOcaLkPJwjAFByo5AoaXbXYyM2sq1Oml0LC6L
         | 
| 2776 | 
            +
                    o9O1Zxuf69vjy2A53t89eL7PcW0vTnZ+2B+zo3xqZVjrYHrxLBS3g4zTkYL+
         | 
| 2777 | 
            +
                    rqxo1565od4LL/04CukoL3Ovexc4arkHKNt2tbiV/Z3vnURDhsLEsp2VXZa6
         | 
| 2778 | 
            +
                    6MymJqp0bXLmu9L7pDlT1uwi2evC8OVRuNCZJYxR7mPN/PpamzI3koA5xSKs
         | 
| 2779 | 
            +
                    amGPYe/w/RS0OyBbOKZDrNcy9ywGAYsIusOwGGZe5j6TdB5XzlajfYio3Yap
         | 
| 2780 | 
            +
                    8E2WMbW/jG0qVJhwSsgtS9eUrzQaz1q0Q8XXX8guqtHWO2bEoI3r7VO0dEdM
         | 
| 2781 | 
            +
                    go1HX6+/yet05544hthSNPtUI5hkNdEklxUtFvbks7VS5SvKM39fZ4hxCTxN
         | 
| 2782 | 
            +
                    Ov9WaLbEhFLWlfHCVeytwlH9hnepcC61dwW65Yi9VWWvSaBF3ozklV1ikpF2
         | 
| 2783 | 
            +
                    j/OccdhT5krG88H6QCfTANbX6iYhlviGn4ii3KFLd8ZXXOcJEOBzWJLLh7FR
         | 
| 2784 | 
            +
                    kfU5nSDnaC1TqV4ugEKC6khOuyIqIveFFXFbOGcMI8A52hGXLl+6qTf9dDh2
         | 
| 2785 | 
            +
                    xsloAJeMY0Vqk3YQEAlaMNXJ2eqBnsiVclqcWLT2TmmG0KoJzDfqG59eQxzJ
         | 
| 2786 | 
            +
                    LLxMBShHCOiTpE0CRmhiRze5y4TL0eHTXyjTRe+hKHsP5QSU9Cgf6CmzydcD
         | 
| 2787 | 
            +
                    6X1RXKRIZbR+ALsXJqmA7+fVuxXiLcu1BNPwqmK27F9VCjvZbdq1K7KdrDr5
         | 
| 2788 | 
            +
                    A3MbgFpbFBpzbZcc+StNpJRmADbYqCPK4UIj13Va47BaQf0l7/4jg+eNXMEK
         | 
| 2789 | 
            +
                    i+XMD718nWO31fLTZ//Jprew40Hfe7+ZjeFycwsj/YHKCsP6wZPbhHTTvKlo
         | 
| 2790 | 
            +
                    ySJ1FIqzf1n7+jM/7M7zU3SMRYlPZ1To9Y2ESxULF0pVs/64YEYThFd95h8z
         | 
| 2791 | 
            +
                    bmSZdD24yzdvoRaYh16LIJ7sGhgpJID0VnzdnltLrx49TrDcgZXnLfladHs0
         | 
| 2792 | 
            +
                    u3xxj3Gkq8zFNNpbNdcdlMHOqIUTyyduz/Kbqk0t+oee2zeZH2iEDnNO34wv
         | 
| 2793 | 
            +
                    LKIGQsmf7JB6BsV6wLdov1SUJRNDXII1E0bzB/+jYGFaTOZVZTv7gt/QBwjv
         | 
| 2794 | 
            +
                    XlWKkrhOf7ENRA6yV5WqrviumjUOOk0TPUHcClP6yxt3/l6/qnD1d/mogyJu
         | 
| 2795 | 
            +
                    a8S+39iuH94RY4kt8gu5mOwz1+9j7FiRADNeLWgCvUsfAjlPSja/SUd9+b1m
         | 
| 2796 | 
            +
                    tsxVTZDLgRXkMt1Vn8umKQ4H0U19ZTe1lFM3f4L2aCrKY9XkbjbSTPaf4ZHZ
         | 
| 2797 | 
            +
                    ucgEMmahGWM6GbE7xklUtFuIMWi3kFaitMdnbASX2XAmV4jmJSXdchxLUeGw
         | 
| 2798 | 
            +
                    FhxHAMja6/WjkE6VGVhJLFNufRMkzGZG4CiHIuNet+3usvbq1ZdAl2MGfkw7
         | 
| 2799 | 
            +
                    muRgtdzQRMkg1vUutI0QfWSJ1vTJGV6u3mQsD1U+X9r1YXmgxH5VsSNgKgQu
         | 
| 2800 | 
            +
                    wFon53cZer7Xe5avKhRDU5ENk7uDzoTnMDSSqEL28M6L0x+PjstirJnCv1Q7
         | 
| 2801 | 
            +
                    dAzktvpXlJwPXHWqw9/Vt7/Sm39aK/K7kgonvhfjcHTxtS06OzBIpAJJNpMZ
         | 
| 2802 | 
            +
                    tNpofF1bbaysGjWgCsygPVLoUVWZhmhMt8gkeqVTiV5Vlr55Fb5vMtGrcMps
         | 
| 2803 | 
            +
                    Is3fp88nImX1/TOKwOqfPaXoFecUvdJJRa/Cu8oqykJR3yOt6FXIqQQo5Oi4
         | 
| 2804 | 
            +
                    oRiTCGzaqRcLNMmxSYkMei/YJmJJTZAsMyglhATzwJ+MvomSmDLDKhy8hIXp
         | 
| 2805 | 
            +
                    0omGFKXUCNRty75wmFPZFw57KvvCYVBlXzgsquxLFiZV2iLHSpV9koiq3CcH
         | 
| 2806 | 
            +
                    NQNO+eALaqFxCw/EB8va0iyoFEUZvyzFBns8SgfNUrPsE1o61+NGBRZ72ScM
         | 
| 2807 | 
            +
                    bCx7f90rLY5hkWXv2cYp+8LBjuUINeG/nCInOOVvyeDsDC+vLr5HiQCEiqs8
         | 
| 2808 | 
            +
                    955DiopveUOs+DZTfHKvz+Jo0IeySaEJ8oNmE26nAm3jaa522K/l7RH7tm4m
         | 
| 2809 | 
            +
                    9SZRjy2dsAtUPlmWHIXii+JT2pqtLTFMJgFJa1nsmyIHjO2FKm2OCKm0tcMf
         | 
| 2810 | 
            +
                    Dg5/HtuWwZnsEmNlun+l4rz72Nlcsz+l+X9x6077mHD/48rG+krx/tetxvz+
         | 
| 2811 | 
            +
                    x3t5aJsn9+SWvpNJV/M9L4OdovxV48Svo895svqyRLBjJ73L52kSDp1isqFS
         | 
| 2812 | 
            +
                    B0d1TDhZxDSp+q+RH/JfHT/G4S42m08Onu43m0tVtXC8v7P3bL/e6ywsLTk6
         | 
| 2813 | 
            +
                    7sMCUFa2uMjGoak6DYec0EgJu6xOyy4nNp3jndWZeOfEtm1GWp2FkTpfXP0h
         | 
| 2814 | 
            +
                    4eESLy4h4hIfLsHhEhluhYXrQHAdG67e1SlTqBOpt1Hy1lE6ahPU0sTx8NhN
         | 
| 2815 | 
            +
                    7IrDYU0oqW1Bii6icywUjUknTVBiBCZJUMKE5E9IgoPddbuFXbMCBU22qOeP
         | 
| 2816 | 
            +
                    vcAnPDb/N2vhjvuYcP/X1upKY+T+7835/V/38oxkZTsj7gLHue+UbDxspJCQ
         | 
| 2817 | 
            +
                    7Yy43Rzn9PxusrEdJ5c95eSSpxzn80nEdpwsos0pYuoTzsEGCsMMbEeg/RDp
         | 
| 2818 | 
            +
                    1/ns6z9Z8rXjZKnXI/N+f3nXjiNZ104OgFunXPPpPLdMuLbq3pxvPVJwinRr
         | 
| 2819 | 
            +
                    x7k52Rrv3TSp1k6Ol34+edYwnVaWtZMXCRNTrFFqMDk5eXr8XLOrGfqPlltN
         | 
| 2820 | 
            +
                    JEei6g7zqh3nfbOqM1FtSRwRzZ9gQjXiz+2njsmmdiRLzjG51DcqAyaR2tF5
         | 
| 2821 | 
            +
                    1A6nUTuURe1wErWj05+dLHPNyeXLOVYCtTOSP53Vd7LkaSfPRe4sc9pxPpm8
         | 
| 2822 | 
            +
                    6YxnlCUtjaqAI9rgZ5YyTdQI6oOj86UdnS7t6GxpRydLOzpX2tGp0o6dKe2Y
         | 
| 2823 | 
            +
                    RGnH5Ek7nCaNWdLNa8cxKdK8iyii6C+fHw1rbEJ2tJ6mD5Ib7XyCqdHOJ50Z
         | 
| 2824 | 
            +
                    PbLUZ8iLdpwPmhXt3FtStPNBc6KLauonkBHN/AttIseZPhuaa2F0SJOr3ioR
         | 
| 2825 | 
            +
                    Guyr+0yDZqA5CboI9sfLgGaoJP+5HKyPn/yMCu3Nqc83ahGsSZi8Z9S57yvr
         | 
| 2826 | 
            +
                    WbqNA8eZZzxzxjOjBPOdMd15hNo+ZrIzg4bJWpQJBYrr++Q5c2ucHHVDezOk
         | 
| 2827 | 
            +
                    OOdalEhQUHQ+ZnYzg0S5zZzaTJnN1hKbOa+ZW7SymnVSM6W6UctU/+4zmrln
         | 
| 2828 | 
            +
                    k8/M6czAe+4xmRmHV5rKPI7BTbCQPtU8ZsfBLGZKO7EdDJ9cBrPjYP4y5gvl
         | 
| 2829 | 
            +
                    /F33kruMWu1NmctOWeKyU5q37IykLTtjs5adu09adqbKWR5B7MwZy46D+co6
         | 
| 2830 | 
            +
                    q5iTiksWjnCnqVKVHefXyS3e0OC4HGXHITEjSQLM2kranSY5WZoiCWNVnZCW
         | 
| 2831 | 
            +
                    LLUkZ9eZ2G1ZQrLjiCx632Fwzpxp7sahjOYgm3ozDKYs+xhd44Xc47J9079M
         | 
| 2832 | 
            +
                    4jEwadlMyeh8nnP81805RpZh7ZYV1ZAPl27MSs482fhPlmzsOCPbu6Oi437z
         | 
| 2833 | 
            +
                    jMkLpQpZxlmS8R3kGJNWV5ph7NxFgrEze36x8wHTi53PObvYmSG52Lm33GLn
         | 
| 2834 | 
            +
                    fVOLnY+UWew4M+cVc6zIH44VoNo06Qv6NSb0xJSFMDGltqKv4X6n/zDZslh/
         | 
| 2835 | 
            +
                    qlxZuqVMvbM32YtonD2J+IMNFOrkEoclb/gO0fBZpwuDZqGThR1LxadM4aLI
         | 
| 2836 | 
            +
                    LHfB5O2L98wSdpxcjrBT6Ol+EoQBiCw92JkAwHvlBkNPlzWTGFwcbXlWMFLq
         | 
| 2837 | 
            +
                    3ecESyocithcghuAaCUD55FhMoEpEfiu84CzHDyAoSQHeNQyRcKdMQF4tPzN
         | 
| 2838 | 
            +
                    +b+kvEzK/i2WsZN/55cI/qUuEfzYcfB/1cfO/xCf1PJd94F5HxsbY/P/KF+i
         | 
| 2839 | 
            +
                    kP+xurb6N7Vx14CUPX/x/A97/rUr4K4p4BbzD//M5/8+nvL5F0/jHdHBzPO/
         | 
| 2840 | 
            +
                    2lhdna//e3lunv+cUW+U21n7mJj/vVa4/3V1fW1rnv93L482TeqigKK5tljJ
         | 
| 2841 | 
            +
                    zXtlibJboQCmt8I/dQlzKi8nH9+SViw/gHQ6FOZlJRE/VpVvv3isSm0c9DFg
         | 
| 2842 | 
            +
                    aNfCa/XFdyNU2Knk2sb4Ih9TwP14mrZNu/lWKFCjibkkaEfqVvLOyhrYRuOa
         | 
| 2843 | 
            +
                    1YU4FqSkAzYWcZ/IQoHxsGRgdDAm134e2x+9OL5xdEFEiGDEGZzB27LRnsVu
         | 
| 2844 | 
            +
                    22vSDjR2s1FPvDYG3hWKRv18ybFFwTIotvtYrTVKy1qbmdlAtf9q4fnO6Y8L
         | 
| 2845 | 
            +
                    6vF3qrI8SGJ2Xy23/HDb+pnQb/pPYj6ZP/DVt1+g54zxpG2QhOmrNcR/0ddg
         | 
| 2846 | 
            +
                    0LWdIXVy4WVu3gNaqUHVhwiwdnQpfP05JH//bSr+b3sqbyUDJvL/ra0C/99Y
         | 
| 2847 | 
            +
                    bWzN+f99PDfwf3veJ8mAkrIfSA4UqPG+ZYHdvaodqlp/vEhgdzpuHlMfqkab
         | 
| 2848 | 
            +
                    yp0BuZU/unDIIXIuIP6iAmJq/n9r7X8a/b/I/9cbW6tz/n8fz0T+Px3nvw+e
         | 
| 2849 | 
            +
                    /9G4/SQ+7/Y/dS4/5+9/Vf4+6ZmG/+Me7+25/2T+v762WuD/axtrG3P+fx/P
         | 
| 2850 | 
            +
                    Tfwf5n0i98/KfCjez9R375wfB/bRmTeOfc6656z7wz2T+X8xuGn2Pibw/42N
         | 
| 2851 | 
            +
                    1Y2i/r+yPtf/7+V5oOPon9undDrf2qFqX9Lq+icmUPWSl9ta3cWl9B0sGG7g
         | 
| 2852 | 
            +
                    ELN0RspJQjKm8GBxU3oH82+geGlpSc55nZ2s6b6Fyth45cEf7rsKqtmygKFN
         | 
| 2853 | 
            +
                    aDQXnD6Wt2YR5VJtn5K1kh1Q1S89dRRmr74fnuIZJql3DYsgSVSF85dVPxgk
         | 
| 2854 | 
            +
                    4zugED38A6pIJhgngrFlQH9WyjvBM4TkcIAZ+/p1hq4sIb98Xbv/Pj9Mj9Dl
         | 
| 2855 | 
            +
                    t0y+LTfAWK5Ycsqloe+It38v3555lKQr8Vorq1t4XHt9ZXs6846aos4wu7jn
         | 
| 2856 | 
            +
                    XsvJfsnjVfp0FONGUccLh1UXA/np5U5Ah69hMDmfTPftMjVBRPg0OnvqXXoB
         | 
| 2857 | 
            +
                    RcUi9uI4iuFlfjGJXkDiK/dBL62ah/VQW4A2doGrRb1bNMKTgq1gaFwLT8FB
         | 
| 2858 | 
            +
                    GE9Onu5TCgAvEvi5m2W34HmIVkaQlfeS5Fy2nILX93ojLfzbG87eCLRy7P02
         | 
| 2859 | 
            +
                    ALXlR89FpGN2yc/NJ0fHP+0c7+3vNZ8fH50eqQWc6GSBi2MYnWePRF7tRshK
         | 
| 2860 | 
            +
                    /tg72n2Bh901j4+OTt8tf/EHHoC3f3JK50Uf7jzbf6f+Xutm1Y4HAPT/Li/W
         | 
| 2861 | 
            +
                    v1x6OIb2sjZeHB+8Uy+fV/9zslN9+tr5dtlisUAItr5T6keWsGygQlBanBK+
         | 
| 2862 | 
            +
                    Tck3N3LuzCE9iXdzyem5d678nH/P+fcnxL8L2zBzDj7n4B+Cg2cW5edkOk5v
         | 
| 2863 | 
            +
                    /9GR+LeyAifYf+sbW8X4v43VzbW5/Xcfz6CfpLHn9pQ11eTKkT9n1Y9V1/UD
         | 
| 2864 | 
            +
                    ch9Fg/Rx4xvnneOU9dHkHfTZeipuqJf0ZY1ATkciNqlhxFpJEnyD3SZB087R
         | 
| 2865 | 
            +
                    noV1ldRvXnjD2dvIFKwMTvvlF99hMebpzUCkAeOG1uOIy9DeL8tEATZC0mXm
         | 
| 2866 | 
            +
                    NoxMUlduHH6DTDieXkmj8vpwNvXPIo0pzu6HVykeCYUi4OfakyjGM+69Tg0k
         | 
| 2867 | 
            +
                    bBqRoE++KS9NSu5DLNHE5MZvHKsYZsPaB4xJx9jSuxxYywJLGg+bnJn1cBD7
         | 
| 2868 | 
            +
                    OWi50jutpdM06WNO/vGP3O964IVn6bn6TjVQ2RhZUYXJ1rXolpoFtbD0aU45
         | 
| 2869 | 
            +
                    S0v1v4v1r0BQ0pQAWseQ7MMVSu9xMa/wG8Ga6PozWjljVnPGBz719TxiR90w
         | 
| 2870 | 
            +
                    vXyRzuu8kjfT5E5s4UOtZoubf4w1zd2Pruz/U/9b/+pVHay5hwIb2yC3NgHP
         | 
| 2871 | 
            +
                    BZobWMUEWH69BShlttN7QDIFv7OrZlyPidnme7k3M3C+fL3Pl/eVLe+bud+n
         | 
| 2872 | 
            +
                    ZiLcrP/zqeTvmwY0e/7Pyvr6+jz/5z6em+efz6D/GPOP+T/z+f/wz83znztj
         | 
| 2873 | 
            +
                    4tZ9TLD/V9dWi/GfYP435vb/fTwPnAeF2yrpFDd05jn4bc865ezMCz1zhiZV
         | 
| 2874 | 
            +
                    qvH5oaoXdVg5pnx+fY6SPv3bcVDeBuQiNc82OUvpg1ZM+Dk53Tt6cerY2sgg
         | 
| 2875 | 
            +
                    porjo2aggIT3FM4yv7laVk5qJ27YaUXXpuostZelspdUEPj2RTLoWQ1NEZy0
         | 
| 2876 | 
            +
                    bE5Ep7N/Kw4Wt2GZshn8DDDoxoC+WzB/0tCkBiwwalITXfTZKctyyDKrO+Nb
         | 
| 2877 | 
            +
                    K68geJ7VDoR3TVQY8WKIJh6BJr3Ti4pjK1ZyOwEGhk0ZEYZRVs1fvTQdMoqy
         | 
| 2878 | 
            +
                    W2OztqqqQhFh8C+VrCxxNTwFUhA7oRqW1LXwkoLpamFJU8vD288oAG38uPIl
         | 
| 2879 | 
            +
                    NbrprawioqKRQya/fvT1GhTkY+7HrzP8LNtveE4LhuC1XTKbqdlx9jL8QBO5
         | 
| 2880 | 
            +
                    YldC+/qmSvB9pA5OPdXB4rkvdK159uVjs9XP5pkg/7Pjnd6jjwnyv7G1ulKU
         | 
| 2881 | 
            +
                    /6tb8/jfe3ky+Y+H7H9A6V8q5Ofc+r24tdv7rc8+sQpeUgiscGbON2H9X9Zy
         | 
| 2882 | 
            +
                    GfA1mMqaHMI2fR+T1n9jvbj+N9ZX5/m/9/I8+DtGQy8n54537bVVcgkzDIpU
         | 
| 2883 | 
            +
                    mqr6Mp4ROZekf+5nxvU/89rHZ9L6X18Zyf/c3Jiv/3t5svWPWRCPP4uMDWZV
         | 
| 2884 | 
            +
                    q9/9Y4X/0qAse+Fl4XjpGU9s+etxu+nWv+x13kr630r+r8zl//08c/n/135m
         | 
| 2885 | 
            +
                    Wv+3kv6T1//GanH/Z31tY57/dS/Pn1P+v/e5Dar2fHy9fJay7JF9QcnOnx27
         | 
| 2886 | 
            +
                    nGn9k2t+di1gdvm/ubo+3/+7l2cu///azy3W/537/0bPf91Yn5//dD/Pn1n+
         | 
| 2887 | 
            +
                    38EpfTPrAXKe3mejDUy5/vFC4lta/7eR/+ubjbn8v5dnLv//2s8M6/+W1v/k
         | 
| 2888 | 
            +
                    9b+2tjZy/uPqfP//Xp4/qfwHep1zrmmeqeK/8cqxeufWYeCNmeO/Vzc35ve/
         | 
| 2889 | 
            +
                    3Mszy/znttZmEAUT+P/66krx/MfNxuZc/7uXR/h/ywUJgBFf+e3TEzwScNCX
         | 
| 2890 | 
            +
                    SxTz92/L1cAUquzFUvmC7zDcVjX1aEM1NuAl33tPl5tuq5Ncpez6SX2rnhWK
         | 
| 2891 | 
            +
                    XnecBw8eqO/3fzg4VAeHB6fwnydH0ODzOLr0odXtPLDw5Vgu1KsR3NvqIYmu
         | 
| 2892 | 
            +
                    ZjdRD0MvxTMj1cPY60Wph++MpFD6rmJZCPmWov77NHRyHg2CDCAMW+6oh5iz
         | 
| 2893 | 
            +
                    bn+kPka+xWltL4e8GWZD7d0a7Yj1/cM9C+cIDl8n3R2EbBcHfit246FT5xxZ
         | 
| 2894 | 
            +
                    4RD6c+KQZH6cRb7lLqp9/bICREe2c2X0hpeKA/b32ePC5TKO81LVutxbMkyY
         | 
| 2895 | 
            +
                    zpYfYlH1GpMR66XfHId/PX74x+7R4ZODH2pZuLFhZXHrnQPmOuYOQLnnB3t4
         | 
| 2896 | 
            +
                    WkhtLOza7q/kL1mBFt45QCgX0s7To91/U0PLly5pURfLyaAF8DFkWPbMFP3B
         | 
| 2897 | 
            +
                    LnlWgC/A0nw/cAKlj57T/Yw1PO4ASWJxSTI6AUPX6iHpRK/V27fKu/ZTtaE/
         | 
| 2898 | 
            +
                    ddVDxoX1cZNTUdvnEYZKPKwQieH9jATituJjMfnoU36naqCDtVVF2qqo2lP4
         | 
| 2899 | 
            +
                    IUOpoL+k8lBwWYE/BWpuJ/bSSzd4/PB/TK8C20P+omreb6rB05nivea08Aif
         | 
| 2900 | 
            +
                    uv4gDnVpOu4Blo4Zvj2MqN8fGcaFHwR4hCm6gzSMXGJm6OIe4XMCdHKmqjIQ
         | 
| 2901 | 
            +
                    IrjyB7znIkHkdkwBqYFfYHm3veb47/F5E/5OB4n5+EABZSrOPcF7Qzteirds
         | 
| 2902 | 
            +
                    hnTFvXXTLN4OCiXpHs6IruPl4F6/rbhFDSL8WYIru+/mbxlo+p36DvSHy+Vw
         | 
| 2903 | 
            +
                    EASspEOFtgudVB6uVIAHZQhYcnSIq9Ugopdos2G+Plwxf37zjUFkeW1N2TfV
         | 
| 2904 | 
            +
                    Fiwu3VgE8X5zF1s31KfZqxVbsed0dEjYfEmPxYJ4Hq+M4G0aD2sjo7kZHZqE
         | 
| 2905 | 
            +
                    Cq1+mdWndfSw8iIBmwzkUkP9wZ0h0t9yy281AGOAectjfGuj4V0l6wFBWnW8
         | 
| 2906 | 
            +
                    xG079Dcsuo+tCf01n5n1/5ybezobYJL+v7U5sv+71Zjv/9zLU6r/57ZPSrTO
         | 
| 2907 | 
            +
                    kUIl2v+WaqyNav8UlkEHVY5RQkE9AjJMQEyk3pm+PT4GzRiV7mlNgjxotzIL
         | 
| 2908 | 
            +
                    vFvbAfek+Y9O1KjS/77Y/liWgD2snDWQ/3D3FgFztfcyB3L8EXdQ7t4uyHVB
         | 
| 2909 | 
            +
                    tgHuXiKoR8entfXGeuOd44WX8GL/8L8Hx0eHeCJiLdvUfOe4HbcPuiGU2Nnb
         | 
| 2910 | 
            +
                    eX66f1xLz3143z73g44MHS2N3R8Pnu4JAk5uhQHeCH3nYOYmNHiyf/zf/ePm
         | 
| 2911 | 
            +
                    C/iXdhbeOZS4mX354fjoxXP59ClZPLvjLZ4+WjwwARXcOq48BMxX1Cuj6pin
         | 
| 2912 | 
            +
                    5sJHQbzYSTl0w7sBvENEwZ8/wJ+EmtK2MrtKVf6RqdufuJWl5mbW3MwqFpmb
         | 
| 2913 | 
            +
                    WR/VzLql/j/TRvBE/X9lJP9jY3N9rv/fx3OD/j9B6yzR+WHq1sfo/B9c238P
         | 
| 2914 | 
            +
                    9/8N2wizOP+LzdyfATBO9f8Mlf4Sdf9DKPrmYKv31vQ/qI5fpt03PgXtfq7X
         | 
| 2915 | 
            +
                    m2eu18/1+rleP1Jkrtd/Ftsns+v/eCTUbGGgk/T/xubo/Q9rc///vTw5/V8Z
         | 
| 2916 | 
            +
                    AwD12THhJnRQlISbeHQRS4klsK4amyOWwEjFfAjLbGE/FOI5o84/o25/P+E7
         | 
| 2917 | 
            +
                    ZfgsaPNTIu6jae50V66tt9ML1Nq9u9Xa+Ti699HZ5TbhO1bW5Z7eT0u1/bMF
         | 
| 2918 | 
            +
                    6czVzLmaOVJkrmZ+Fmrm/PlEn6nuf/gI+R9r8/P/7+WZZf4/TP7HCvwo5v9v
         | 
| 2919 | 
            +
                    Ntbm9//dy/Pg70onAE4yu7JnUt4FCdtsi8SYVoX0iHGGHJpTt2pjj8nWBkOt
         | 
| 2920 | 
            +
                    qjW1rjZyX00HoCiuqM1yc43tNeXmR1tmZdEZylF/GPtn56BGtpfUaqPxqLYK
         | 
| 2921 | 
            +
                    pK2O+mDddLyqOgjb6tvAO3ODf0b8rt6Oet+VJN3oZ9yejwVK3ur+egOWTtHq
         | 
| 2922 | 
            +
                    JkGfKGgn34sfaouhh7A4I/mfSSEB1Er9zKV9mkxQZ29n/9nR4ePb5Hw4eDfr
         | 
| 2923 | 
            +
                    4/yrvf2T3cIrsfbGdzE+NcNx8Ihksr0YTkvpQmMY7OLlIGkRr6tZ5jDYZDEb
         | 
| 2924 | 
            +
                    qpopPkRYcyZs7ovjgB7/Uv0dbbDp4FSvv0HFH1Xu3gUehT1dNQcXYnQFtgxu
         | 
| 2925 | 
            +
                    u2w/pC2Waet2fUfmqwmW6snjCluMD9nmRgvxoSAbbceHYvfC9x/3nzT3f36+
         | 
| 2926 | 
            +
                    c7i3f9zcOf7hBAx9MVOagGYxNOCvx6Ruo1fk8UO8WRkQ+TubnRWxztgSW6Fv
         | 
| 2927 | 
            +
                    hK5lNPyWsQiXsIu0e53Hb9puahVahncBGk5vVRqrhVfAdxfgn3ABXrhXF2rh
         | 
| 2928 | 
            +
                    8Pjx49WFN9QB2MI96Pnvj+EvBKoy2oX82SDbiYckwyH4ulBTcDI6AhwwgaeL
         | 
| 2929 | 
            +
                    YK8WXsg8s0lvTL+0XGXWpHMiJ8Id18bZRgAM0Yid1pT1jLagnjvd4UNrrh26
         | 
| 2930 | 
            +
                    HA05EFvRXpB4WSs1tB9quqkam8a1GjBnD/81RqbuQe9i1Wrt80E2RATS+kbu
         | 
| 2931 | 
            +
                    Dg1MrVaEpwAREGdmqMsX7UjI42Ya5ORdCgXMcIlc7xlCxmAk6k+DEPhG11WU
         | 
| 2932 | 
            +
                    IaSAkTIgCAdlSGAzLY+G6egT/hd1CREG2Afq9NxP0NWAngce40KCpaEOKQaI
         | 
| 2933 | 
            +
                    PFVbIfq1ZuV/MueH5d4hOLwxcDApa5eGNUF2Pxu6I0B+4Hm4B7t3sH968Gy/
         | 
| 2934 | 
            +
                    wiZ2eRO5Rh5lbYxrZXw7YlhXdt0wjFKiHcUcf5GYGvxn6e8FG1n7FXjO+B+m
         | 
| 2935 | 
            +
                    YXZACTZKXCyWT4DuJKQJaPaSM2V5+VAQKvTTIRiVUSzkwcd20AMU4x2K1JLb
         | 
| 2936 | 
            +
                    77uxF6bBULlB7Lmdoa5cydXywg5VaORHt+ZYY4OObRZVxN1LdO1VHp6c7hyf
         | 
| 2937 | 
            +
                    ErqZAHgSstdAdz+50HQS9TxFHnPdALQ/dmQ3wGlWbEmxzOsjY8iVHi0ppcjj
         | 
| 2938 | 
            +
                    knmwRqdHey9xem6YHWsIeoVrwC1+RtpIjgEUYDMsoDCCG6cbKbgw1WUItHxP
         | 
| 2939 | 
            +
                    9uDZLZSh4GEjc41mQ8yNcCyWFqmxpTJsjeIl4yuzocUGXru4Rl18RRiPueSY
         | 
| 2940 | 
            +
                    uczDdvOMCfVrVpOjfXlpietJzUxaROwBFTobbWUsloSwMz9mESG76JvGRsVT
         | 
| 2941 | 
            +
                    HHUnEnmRBvIUOZEE74ieV2x6Hl3MRSLAK15RPRMqwI9EBMTtGSHb1KXf6wde
         | 
| 2942 | 
            +
                    D0DwOlXl2rKyUt5Ym4VHjITndqi87OqQrrCIznztEK5XMgjFvXv42N6bY6uC
         | 
| 2943 | 
            +
                    xkWSSXt8D3Me32yxvi0jffEIv6uo7/6x6hSQBH2Tk9fR9tDH9krMn/t6Zvb/
         | 
| 2944 | 
            +
                    3X3+58b61kj+5+bGPP77Xp7b+/8mJFmSwlDivxsbsn2j1y9f6wP6+fKj+kCu
         | 
| 2945 | 
            +
                    vlza5nhHX26plR2vM8nZJxqGNPBxPHw5hM7ovys7UvXZzsEhNHOrJnSotuVt
         | 
| 2946 | 
            +
                    zIGXeRxzr+eew5s9h+hVOTo+LZ6c28HQ6IcSgj7Wo1jbzZyOAwYIo6QZpsoY
         | 
| 2947 | 
            +
                    RxwookIHJW68zBUnZd4YP+RPR8f/3j++nTPSKrHYTwAKDrlQQAugrPZV7TdV
         | 
| 2948 | 
            +
                    6YFArH+5iP+obdVzk9SL3yID8+L6l4SkpcrSbN6/aTx4U7nKjPft38pFL0k2
         | 
| 2949 | 
            +
                    H1M0V+Z0srpwprV97AE601s67+U4uXeHSc6SnjtMyh0mfyZHyXv4Gkp8DLm1
         | 
| 2950 | 
            +
                    ljPyMebqgxv5n4VxvzYyB+9hOuvp+yuayLe0/+4y/3djfbV4/vPGxvz+l/t5
         | 
| 2951 | 
            +
                    3tf+e5/oDwwe7rTeJ/bDtPDBLcIPF/chY9HPzcbgqBnY+JzMwNsZgO9l+o03
         | 
| 2952 | 
            +
                    +kbMvbmh9ycw9OaW3dyy07x0btmN0aHnlt3csptbdn9uy266Z3b7787zv7c2
         | 
| 2953 | 
            +
                    Rs9/Wl1Zmdt/9/G8h/1XnoCNT4ntNr2V94GtOSTfD2fLYd68fsZacgxCIXZ/
         | 
| 2954 | 
            +
                    fQo7Dlv/NOL2afJFbyW76lf30rUtLPqe2Vf4c1bbT1K151bZiFWm4exm1lUG
         | 
| 2955 | 
            +
                    ieRky4fyvszX0jQA24CzUgJsW84YcGcjBtynlAVwjtFXtZVPLwOAFs1s5uJ7
         | 
| 2956 | 
            +
                    xfgj8/GRd7xJKD0eLOafT48P9k8QyE5U0Axv1NhbYDZdFNW/WUIWSbfrRKE3
         | 
| 2957 | 
            +
                    rX07MYA/rzrPY+bnMfPzmHnr+VQdBfOYedP6PGZ+HjP/CThf5jHzt46Z/9iG
         | 
| 2958 | 
            +
                    /C0f2/8Te22/7yXLbt+F13ik7PWwfpsLnwvPpPP/NjaK+/8rK5ubc//PfTzo
         | 
| 2959 | 
            +
                    utgZpOdRvL2t/hUl5wNXnWpMqG9/pTcFb4fajaKLFvxPHYIZtT16DDeSEby2
         | 
| 2960 | 
            +
                    6ajgYNHOlZVqzrtCpZ76bS9MvI4a0EEFyAh2qCX9par+68UJbj2u1htqEQtU
         | 
| 2961 | 
            +
                    5FNl6RtoYRgNVM9l1odsI0V9nbiId932+ikaQng2duC7YdtTV356Tt1II+ic
         | 
| 2962 | 
            +
                    +UWaiFqpC6VdKN8f6mO0pZxyUwIYn/M07W8vL19dXdV52PUoPlsOuGCy/PRg
         | 
| 2963 | 
            +
                    d//wZL8GAFOVF2EAvBr4GbvEVAvUzD7A03ZbAGXgXuGRXy4wdPiWRgjvVeyj
         | 
| 2964 | 
            +
                    uK2C/tdNgXHiKYEdP0ljvzVIc8jS0MGY7QKALpjRys6JOjipqO93Tg5OqtDG
         | 
| 2965 | 
            +
                    TwenPx69OFU/7Rwf7xyegkmojo4V2Px7B3SAnTp6onYOf1H/PjjcqyoPUAXd
         | 
| 2966 | 
            +
                    eNd9lDUIJPJ53+sgzk48LweAPqQw6QNFdP220hd9q7MISIXEYB/PPktwMhMA
         | 
| 2967 | 
            +
                    rwOtBH7PT+lU8mR0UHWw5aIobdIRyuqxunSDgdeEjprouYZ/e4vAnStR3wtb
         | 
| 2968 | 
            +
                    CRj7j79Tf6iKuHnoZ+Xq3POCinpXxYJdwPBUBXNfEISKs+Q4fH85TzheWh4A
         | 
| 2969 | 
            +
                    vr2wiadGJwuv1bffqsr6+loFxkHTfXPxuh+2g0HH+59FqrTkmNvULYcQVqNA
         | 
| 2970 | 
            +
                    DhDgSCudhdfoX5kGjvXbwLEOcICq4DjysslCAjUMrL1aGfdhe7sXgcWdBBNK
         | 
| 2971 | 
            +
                    EHeYpkwTl9hUBVtugOs6nlA49nBNeRNKoQsJuM2EUrAgYB1PKgVEhPsrFcfp
         | 
| 2972 | 
            +
                    QOl2GsVDVcmOtwSQU1wnuAVTYa9MdBXCAiCPIKo8TPbZCkDHI8ylAsHaaPA8
         | 
| 2973 | 
            +
                    4UmuoI6CDpV66uTkqdodbbV91RnbL37GJr/9trZ/9CP8GvTc5EI1tvAcPVxX
         | 
| 2974 | 
            +
                    MKV4EGGcuMDF179W3+WSVVhpuPCGVmngcqqWDFq/qsqDP0opGkoBxn5beA26
         | 
| 2975 | 
            +
                    Vi30rlTteqPxCP6EwgnUPXdXVK3jDhO1trnRUDVov7zXUmjadI4euubK65TW
         | 
| 2976 | 
            +
                    KG2p7/WgJcYLCJcmrNA/1Pb2ExAtddADkzSBRVOO2OXS1ipL6h3PGyzqJogA
         | 
| 2977 | 
            +
                    VRkpJ5Omd+eU7R+uo4qM23E4b27fl9dN9G+WMw9qEv8olCY+Yr1zQTiC5Jqi
         | 
| 2978 | 
            +
                    ESlpGkA2MkU1LEZ1mJ1ND/hI+dFWpgOeq9jg85spBpAVpHpkDfrxKGPl91AG
         | 
| 2979 | 
            +
                    5vhjq3qlT5n+L7LuLlR/eibo/2urI+e/wf/N9f97eW6l/xcrnPheDIqFKb62
         | 
| 2980 | 
            +
                    lfhnoRskMxoMQnijtsLXpbZCwZ6oKtPv3I6Y2xET7QjGmVpANaU2iP0Fx0Hs
         | 
| 2981 | 
            +
                    oyIywB3nCk6t22atgWPN974XYexy6Ot2P0pQtxjEAeo2eBr79vYuea1ebkt0
         | 
| 2982 | 
            +
                    ehM+vn7HCkFTmkRpHYXBEBUI2X1reWe+9gYiRItTtFfRpwH/6+TocHu778aJ
         | 
| 2983 | 
            +
                    tzh95To62pZeVmB2L5qJ/7tXeQ1az0qj0Wzw/9hb6iXtgQdLzwtfHB9sb/94
         | 
| 2984 | 
            +
                    evp8P46jWPoO/YB9YyFuH+F/SZ/54mqRtbc4QtYQw/CAhmQ+2jDVYQp05aYu
         | 
| 2985 | 
            +
                    qOtn2V9Nn+6mwpOzEjkkewC/28JAEpXA7Laia2jSCy/9OAp71JLfafbc/lLd
         | 
| 2986 | 
            +
                    gzUDKFVvL33v6q3j8Iq6eU4VllUP/sB/3lX0hBSmePZJXtYtUu3CdOcnfPop
         | 
| 2987 | 
            +
                    XwYjApmcbny56YfdyBDC7UhhXKOaQPAlvOp41xiPcDO5TCaYjGQ00djEQ9Tz
         | 
| 2988 | 
            +
                    saXiX+cp0//wionru3P/Tr7/pVGM/1tpzM//uJ8nr/+5Pd9TP/lhAhL321/x
         | 
| 2989 | 
            +
                    1z8vfdCn0kHHj2bV5iwymnt/51rb3WhtRf8aEdn2dkK33FQ+Le/w3Mk3d/Ll
         | 
| 2990 | 
            +
                    nXyZD0/jiOgXsUNuonfLCei/Sc29dP0AmcGyhcOmgA1qnEwxU33eIUgN5tyC
         | 
| 2991 | 
            +
                    Ql5Mlpq8zE8hLRDQPFwYCszGtuyHV1VFrqN5SQ2/xiqXbuwjcMki6W7bRb8j
         | 
| 2992 | 
            +
                    LIIZXY/VrCHtupuqEeO7sxog791Utdl9J1VHvZAT2yhxROYam3ooBUdkrpHp
         | 
| 2993 | 
            +
                    hlPwR8qeDU1ZE0kqRyM2Ic1V7b/2U6b/6zT7u3IAT9L/11eL+n9jbXOe/3Mv
         | 
| 2994 | 
            +
                    T07/33ND3wvUnvfUi9S3HTf854Ub0OZwe5zrd5KvuMRc0ORl2wpIhiVGQjUH
         | 
| 2995 | 
            +
                    0tw+mNsHE+yDB6B1e13FeYvNlgedeM3kt4Hn/e5hiKe2A0CD4zKgm/3jH2qR
         | 
| 2996 | 
            +
                    pav+2rxkClp4XU+jZld9qzaAlN6+nVTu8WMqCA2OK6f+/n9quf5l4neW1ZKO
         | 
| 2997 | 
            +
                    rOiqRQuuQWsQpgOGawJYj9Wj+kqDjh0YO+K8wbRY8WLEc2UJXaN6JTY7/Ysz
         | 
| 2998 | 
            +
                    yjECo0k03V8jP1zMOw5xjTTbSL5U9jUoh8sV+E/hWJbmSn2rvlpbAYUmqANc
         | 
| 2999 | 
            +
                    0pck+kEbi6P9Lmm/qHb5qornrrbgWV/pbnY21h59/fX6+qOvW61Oa6O91YHf
         | 
| 3000 | 
            +
                    65vrayurW51Wx+1seI+6W+3Vr732o053a7O1sraxwW5XrSLLCuz56IisGwkH
         | 
| 3001 | 
            +
                    6xzEXuCh4rVcGMfyJQ2k+HpkeNpxqZQMp30BVHzTIAWo0RL0VWZZLUhHCzl3
         | 
| 3002 | 
            +
                    tB+CJAoC7WrnIGDpc2QqKkxhosKPfmaAgAANiXXdnh8MgQzjczBvYXK7XieK
         | 
| 3003 | 
            +
                    XXEwcxA2IA0YPlqXCaWOSuvF03n46pB/fKeW8/fYUzz41G1E/ZEm2FmcDPoU
         | 
| 3004 | 
            +
                    sKReWtbKtoRfv872aOAzh0rxVwDpNWPlgXI7HckLVZfnUZIiM0V2Aqtn4NFF
         | 
| 3005 | 
            +
                    uIPUwlo7DbBKk8vyJgpjUMzEXEmUm1w0eavoHBGuoTtvs/VOvdNFIZohTuid
         | 
| 3006 | 
            +
                    ylItzIvEqO4JMPBeylsCIQfBWeyGKXXZA/HixQwG/nZbfuCnQ7qeNALOOwQZ
         | 
| 3007 | 
            +
                    CezYiMLlDGfQDr5Jz0Ea4S6Pd72QYHtYl+O3qySdAP0U122zdJg2YP6pf+kF
         | 
| 3008 | 
            +
                    QzPgBXsAiZc27Ro1wSIjoFL/spL9ZyGHh4VSPOQawzbeZjOz8FfceijV/wet
         | 
| 3009 | 
            +
                    4ZnXS2rCa97XDrhZ/19Z31gvxn+sNrbm97/fy3Mv8R9j9gxsAwC+pbg/bM4d
         | 
| 3010 | 
            +
                    Kt8xaOR3DOrzIJC5ufB+5sKntGFA8rdi6RXJEGzvnkrjAWp5CahkAWhMfF4H
         | 
| 3011 | 
            +
                    akLn0dhoSdAmF0TRofzZginBeh6UALBCpY0hVgbzRcFoAbtGmyWTrZLv2CqR
         | 
| 3012 | 
            +
                    Df7ifo0EH5AaFyR30dnXurMxXWWbQ0ZPH9etYGGqbjfZIrxtO+qxMQRvAn4C
         | 
| 3013 | 
            +
                    nrJpm2n4hZJ4dkel5L2lG2xva3WqrOCZhxy54ggxFUyHsi6t4X04aMg44ujc
         | 
| 3014 | 
            +
                    xcqL8CLEczA0Bomh7HIAUF09c8OBGyhReIhhIH+W74a11skOGt/eMYH17D9j
         | 
| 3015 | 
            +
                    G9QFpm7xX4CNsa3hx6lbYrSMbYs/l7W2C8ItCinKKj13MUMzGKIAAE4KfEVM
         | 
| 3016 | 
            +
                    z0S1PGTB0iyICBR4XdcPUOSQ3YVNlueS/B74rdHUieseWHuOGN2ojwKD/uLq
         | 
| 3017 | 
            +
                    j9yOndv3rbNx6C9zw+07XVeMy3z90fJWu1B3huwbG0RMtbEBpNKVrJCBZUxB
         | 
| 3018 | 
            +
                    Y69Lg1lAG/x6i9t3Xk+7GPBv7VLQTgMLZD0zCDTZN/Cv4T92qB6V7vgxIuil
         | 
| 3019 | 
            +
                    ySYqDNuEslfHlWCRM/Zz5ji6oVALYB70J5XSJ+JwkWwvtuK8tkaToQ5+Ieqy
         | 
| 3020 | 
            +
                    /XiM1RfEFTbfS7ffsw34jQ2JiWwPAJGXnhbNVtjjH0r7LpDE3mVQtLtnb3N5
         | 
| 3021 | 
            +
                    HNke8oM/4OM7sLMqBRdRxXzRu7kzQrxJYXnC+AM/vLC75ROBrV5hqVqfZUc5
         | 
| 3022 | 
            +
                    tl1cxSbMFcvjW8FznLI2qJ1sJm6gpFmDI2huCjNj5oSoD2bGjdvnHMpoT80I
         | 
| 3023 | 
            +
                    gYyLYWDI3sGEQdksVvSOiejDBY5MQHy2sO4M+Q+0SKD1kLm1DBfWXgbjjtSu
         | 
| 3024 | 
            +
                    wdIyeCLVCG3heVTkEKqdqQd/ZPBR6C25tZEECmekqfwZacocjKb0wWhKfuJ/
         | 
| 3025 | 
            +
                    3t0UDDKBWBDKZVTVs0AQSyUvVMIDDJpJOgw8o5zDrPhpqRqVfSmIl4y0k8v2
         | 
| 3026 | 
            +
                    Wya3AbUsjlZ4nS1q4x+2BJKhbfGtZh7b5BLgyIXZlKnWE6VmebciB7Mw6Sm6
         | 
| 3027 | 
            +
                    z4RsLpCYkedrDM1I+pnHnR21d7zOCaAkpayxMrtTDDSOsHmpFf3XZC/Kj6p8
         | 
| 3028 | 
            +
                    K6jbXAZUONDVKhQLQmsq7N6yLzZUb+wMzFR29Wb9IXK1TvJ4Fq0ElR6BlGtp
         | 
| 3029 | 
            +
                    Oz/hWWpRvIsuBVWmIn4aP/wnBTUWWj44otB2XLm6pXfL+BcHcIHQteB/t0ye
         | 
| 3030 | 
            +
                    j4iYPk/ZO2JBUEzQigIB+nrHW10jMl4OJZEyGW1nQj5rOFc2E/ojVCVEpNgV
         | 
| 3031 | 
            +
                    VRkHUNaZHr2NinzTHANmNc3Cfgx306dCsjgsdIYqgK5XOoFYW0LepHK+a4tP
         | 
| 3032 | 
            +
                    WfjSWz56mweIT9aUtWDLNnxKWcOgT58rYiOqCp3rJry1E1H+aKqGXqo7lg2N
         | 
| 3033 | 
            +
                    QUwH/WhNnjx+L/pi4+jGW7DK+j5uWJXw7dzHydQ7GjaoG6BVJHOe4bJObZfR
         | 
| 3034 | 
            +
                    mflaQlkj0687aZZOhsa2RvY2HplTZYyPQTif/5NGUZCUoqX4fTJmrBrlUBrU
         | 
| 3035 | 
            +
                    scAjqoapLqGaAtGMGQJ694xPAf264o8Eg9f0j8JbLUDJhTq5fq/wPLxQvK8J
         | 
| 3036 | 
            +
                    kBOIjCFMiYrbddI/eA2bA2K1Tl21TFUUfZbIs8zzvBGbyKGzIi63CzYuHu8Z
         | 
| 3037 | 
            +
                    qjErWpdqUkQuxunmOyFAyjugT7VOsYK1ETxahT8iRIe4rzcGqCxQ813x3onn
         | 
| 3038 | 
            +
                    4+pksvxd/goR8kDYXqHdaBB0aJl3vBS9x6Fn5hE5MU9mVfW00yTF5kLq3/jb
         | 
| 3039 | 
            +
                    s1nVA9YEqz0eH3uXZ/xj7/+5qfj37zgFfFL83+bWSP731jz/536eD3D+044h
         | 
| 3040 | 
            +
                    o9lTuuc7dvMdu5sTgDLLuVKwXyraXkYfD+o2QnsjB2pnJjbYL2ANTKwgp2/L
         | 
| 3041 | 
            +
                    AxWWL92YDh7XluC4mtbZ3VZNeDuxZuYuFSCpJr2dWNfyoqKFVoB3mT9X8lt/
         | 
| 3042 | 
            +
                    1dF9mxkwyFb2XxSDenu4mm0Aw589t92Mkub1THgk9XJWNN4ahbfAHnki8dPs
         | 
| 3043 | 
            +
                    2MthTgIXp0ZMGIU3dvknwgz5aaX+eKPbHqr2XFbG1qP8vqwS1wMtbPWGKnGQ
         | 
| 3044 | 
            +
                    q0BVRM6R1YLRf9vroOyMb8NsGtlt8FKKzmR2xtXNFH+r7s3d2VlQVpX1iVWM
         | 
| 3045 | 
            +
                    X5KqdF0kznE10NTBU+H6dAbCApPA6sbms/GdXLqB3yGZ1uSTLyRbDGuS7iQF
         | 
| 3046 | 
            +
                    onh8G0XjDOqu3IFdMUb/zyWKva8RMPH8p831kfi/za25/n8fTyH/59LvqJ1W
         | 
| 3047 | 
            +
                    x+uBXez6nvpWNP9/nketqONe3sYEsGlpTI5Podu5HTC3A6Y9CMAwrZIjSa1v
         | 
| 3048 | 
            +
                    ud2qsUy2E7WbuJnDrPlGB3a2A2HvHNgbUrWcd+rGfY93y/1BC6Z9PPs3yfMs
         | 
| 3049 | 
            +
                    QncfvzhZPjl9fOLBdzdYfvr4KYpkPx0uHz3ev3bx8PXloxePjwCxjMTl3UP7
         | 
| 3050 | 
            +
                    rlvOTl/2eq4f7HQ6OI2PceT/NKJ9PCwm67idJHLyafM8GsSJQAe8fIrKv47W
         | 
| 3051 | 
            +
                    JUm6PkXdkQRyrjsL7KPqBTaxvr42XVWTrG2qZpEzCEGWDs7vur91Qv69MDIL
         | 
| 3052 | 
            +
                    CxTFgq/rmmQ6EV5bjC5YDGmZCFFJJvqs+BjVnRgf69NWzWPkQ+LjY8vM+TN/
         | 
| 3053 | 
            +
                    5s/8mT/zZ/7Mn8/5+f8QS8V/ADACAA==
         | 
| 3054 | 
            +
                http_version: '1.1'
         | 
| 3055 | 
            +
              recorded_at: Sat, 02 Feb 2013 18:10:23 GMT
         | 
| 2375 3056 | 
             
            recorded_with: VCR 2.3.0
         | 
    
        data/features/git.feature
    CHANGED
    
    
    
        data/features/needed.feature
    CHANGED
    
    | @@ -6,11 +6,11 @@ Scenario: already downloaded tarball | |
| 6 6 | 
             
                archive :testrepo, :version => '0.1',
         | 
| 7 7 | 
             
                  :url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
         | 
| 8 8 | 
             
                """
         | 
| 9 | 
            -
              When I run "vendor"
         | 
| 9 | 
            +
              When I run "vendor sync"
         | 
| 10 10 | 
             
              Then I'm on "master" branch
         | 
| 11 11 | 
             
              And command output includes /module\s+testrepo/
         | 
| 12 12 | 
             
              And command output includes "testrepo-0.1.tar.gz"
         | 
| 13 | 
            -
              Then I run "vendor" | 
| 13 | 
            +
              Then I run "vendor sync"
         | 
| 14 14 | 
             
              And command output includes /module\s+testrepo/
         | 
| 15 15 | 
             
              And command output includes /up to date\s+testrepo/
         | 
| 16 16 | 
             
              And command output does not include "testrepo-0.1.tar.gz"
         | 
    
        data/features/status.feature
    CHANGED
    
    | @@ -16,12 +16,12 @@ Scenario: status new module | |
| 16 16 | 
             
              Then command output includes /new\s+generated\/0.23/
         | 
| 17 17 |  | 
| 18 18 | 
             
            Scenario: status up-to-date module
         | 
| 19 | 
            -
              When I run "vendor"
         | 
| 19 | 
            +
              When I run "vendor sync"
         | 
| 20 20 | 
             
              And I run "vendor status"
         | 
| 21 21 | 
             
              Then command output includes /up to date\s+generated\/0.23/
         | 
| 22 22 |  | 
| 23 23 | 
             
            Scenario: status outdated modules
         | 
| 24 | 
            -
              When I run "vendor"
         | 
| 24 | 
            +
              When I run "vendor sync"
         | 
| 25 25 | 
             
              And I change Vendorfile to:
         | 
| 26 26 | 
             
                """ruby
         | 
| 27 27 | 
             
                vendor 'generated', :version => '0.42' do |v|
         | 
| @@ -41,7 +41,7 @@ Scenario: Module's dependencies are statused if they are known | |
| 41 41 | 
             
              And I run "vendor status"
         | 
| 42 42 | 
             
              Then command output includes /new\s+memcached/
         | 
| 43 43 | 
             
              And command output does not include "runit"
         | 
| 44 | 
            -
              When I run "vendor"
         | 
| 44 | 
            +
              When I run "vendor sync"
         | 
| 45 45 | 
             
              And I run "vendor status"
         | 
| 46 46 | 
             
              Then command output includes /up to date\s+memcached/
         | 
| 47 47 | 
             
              And command output includes /up to date\s+runit/
         | 
    
        data/features/tarball.feature
    CHANGED
    
    | @@ -5,7 +5,7 @@ Scenario: just URL as name | |
| 5 5 | 
             
                """ruby
         | 
| 6 6 | 
             
                archive 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
         | 
| 7 7 | 
             
                """
         | 
| 8 | 
            -
              When I run "vendor"
         | 
| 8 | 
            +
              When I run "vendor sync"
         | 
| 9 9 | 
             
              Then following has been conjured:
         | 
| 10 10 | 
             
                | Name      | testrepo-0.1        |
         | 
| 11 11 | 
             
                | Version   | testrepo-0.1.tar.gz |
         | 
| @@ -17,7 +17,7 @@ Scenario: URL as keyword | |
| 17 17 | 
             
                archive :testrepo,
         | 
| 18 18 | 
             
                  :url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
         | 
| 19 19 | 
             
                """
         | 
| 20 | 
            -
              When I run "vendor"
         | 
| 20 | 
            +
              When I run "vendor sync"
         | 
| 21 21 | 
             
              Then following has been conjured:
         | 
| 22 22 | 
             
                | Name      | testrepo            |
         | 
| 23 23 | 
             
                | Version   | testrepo-0.1.tar.gz |
         | 
| @@ -31,7 +31,7 @@ Scenario: Version & checksum | |
| 31 31 | 
             
                  :version => '0.1',
         | 
| 32 32 | 
             
                  :checksum => 'ea207a896f929ffb3a1dfe128332d6134a18edab7c01b97bfb2b1c7eacebe0cb'
         | 
| 33 33 | 
             
                """
         | 
| 34 | 
            -
              When I run "vendor"
         | 
| 34 | 
            +
              When I run "vendor sync"
         | 
| 35 35 | 
             
              Then following has been conjured:
         | 
| 36 36 | 
             
                | Name      | testrepo     |
         | 
| 37 37 | 
             
                | Version   | 0.1          |
         | 
| @@ -45,7 +45,7 @@ Scenario: Wrong checksum | |
| 45 45 | 
             
                  :version => '0.1',
         | 
| 46 46 | 
             
                  :checksum => 'incorrect'
         | 
| 47 47 | 
             
                """
         | 
| 48 | 
            -
              When I try to run "vendor"
         | 
| 48 | 
            +
              When I try to run "vendor sync"
         | 
| 49 49 | 
             
              Then the command has failed
         | 
| 50 50 | 
             
              Then following has not been conjured:
         | 
| 51 51 | 
             
                | Name      | testrepo     |
         | 
| @@ -57,7 +57,7 @@ Scenario: Tarball without a root directory | |
| 57 57 | 
             
                archive :testrepo,
         | 
| 58 58 | 
             
                  :url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1-noroot.tar.gz'
         | 
| 59 59 | 
             
                """
         | 
| 60 | 
            -
              When I run "vendor"
         | 
| 60 | 
            +
              When I run "vendor sync"
         | 
| 61 61 | 
             
              Then following has been conjured:
         | 
| 62 62 | 
             
                | Name      | testrepo     |
         | 
| 63 63 | 
             
                | With file | test/alias.c |
         | 
    
        data/features/vendor.feature
    CHANGED
    
    
    
        data/lib/vendorificator/cli.rb
    CHANGED
    
    | @@ -9,7 +9,7 @@ module Vendorificator | |
| 9 9 | 
             
                check_unknown_options! :except => [:git, :diff, :log]
         | 
| 10 10 | 
             
                stop_on_unknown_option! :git, :diff, :log
         | 
| 11 11 |  | 
| 12 | 
            -
                default_task : | 
| 12 | 
            +
                default_task :help
         | 
| 13 13 |  | 
| 14 14 | 
             
                class_option :file, :aliases => '-f', :type => :string, :banner => 'PATH'
         | 
| 15 15 | 
             
                class_option :debug, :aliases => '-d', :type => :boolean, :default => false
         | 
| @@ -9,7 +9,6 @@ module Vendorificator | |
| 9 9 | 
             
                extend Mixlib::Config
         | 
| 10 10 |  | 
| 11 11 | 
             
                configure do |c|
         | 
| 12 | 
            -
                  c[:root] = Pathname.getwd
         | 
| 13 12 | 
             
                  c[:basedir] = 'vendor'
         | 
| 14 13 | 
             
                  c[:branch_prefix] = 'vendor'
         | 
| 15 14 | 
             
                  c[:modules] = []
         | 
| @@ -27,7 +26,6 @@ module Vendorificator | |
| 27 26 | 
             
                      pathname.dirname
         | 
| 28 27 | 
             
                    end
         | 
| 29 28 | 
             
                  self[:vendorfile_path] = pathname
         | 
| 30 | 
            -
                  self[:lockfile_path] = pathname.dirname.join(pathname.basename.to_s + '.lock')
         | 
| 31 29 | 
             
                  super(pathname.to_s)
         | 
| 32 30 | 
             
                end
         | 
| 33 31 |  | 
| @@ -1,10 +1,16 @@ | |
| 1 | 
            -
            require 'chef/cookbook/metadata'
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            module Vendorificator::Hooks
         | 
| 4 2 | 
             
              module ChefCookbookDependencies
         | 
| 3 | 
            +
                def initialize(*args)
         | 
| 4 | 
            +
                  require 'chef/cookbook/metadata'
         | 
| 5 | 
            +
                  super
         | 
| 6 | 
            +
                end
         | 
| 7 | 
            +
             | 
| 5 8 | 
             
                # Add required Chef cookbooks to vendor modules
         | 
| 6 9 | 
             
                def dependencies
         | 
| 7 | 
            -
                  ignored = | 
| 10 | 
            +
                  ignored =
         | 
| 11 | 
            +
                    args.key?(:ignore_dependencies) ?
         | 
| 12 | 
            +
                      args[:ignore_dependencies] :
         | 
| 13 | 
            +
                        Vendorificator::Config[:chef_cookbook_ignore_dependencies]
         | 
| 8 14 | 
             
                  metadata = File.join(self.work_dir, 'metadata.rb')
         | 
| 9 15 |  | 
| 10 16 | 
             
                  unless File.exist?(metadata)
         | 
| @@ -15,9 +21,16 @@ module Vendorificator::Hooks | |
| 15 21 | 
             
                  cbmd = Chef::Cookbook::Metadata.new
         | 
| 16 22 | 
             
                  cbmd.from_file(metadata)
         | 
| 17 23 |  | 
| 18 | 
            -
                   | 
| 19 | 
            -
                     | 
| 20 | 
            -
                     | 
| 24 | 
            +
                  if ignored && !ignored.respond_to?(:include?)
         | 
| 25 | 
            +
                    # ignored is a truthy value that's not a set-like thing, so we
         | 
| 26 | 
            +
                    # ignore all dependencies altogether.
         | 
| 27 | 
            +
                    super
         | 
| 28 | 
            +
                  else
         | 
| 29 | 
            +
                    deps = cbmd.dependencies.map(&:first)
         | 
| 30 | 
            +
                    deps.reject! { |n| ignored.include?(n) } if ignored.respond_to?(:include?)
         | 
| 31 | 
            +
                    deps.map! { |n| Vendorificator::Vendor::ChefCookbook.new(n) }
         | 
| 32 | 
            +
                    super + deps
         | 
| 33 | 
            +
                  end
         | 
| 21 34 | 
             
                end
         | 
| 22 35 | 
             
              end
         | 
| 23 36 | 
             
            end
         | 
| @@ -32,7 +32,7 @@ module Vendorificator | |
| 32 32 | 
             
                  end
         | 
| 33 33 | 
             
                end
         | 
| 34 34 |  | 
| 35 | 
            -
                attr_reader : | 
| 35 | 
            +
                attr_reader :name, :args, :block
         | 
| 36 36 | 
             
                arg_reader :version, :path
         | 
| 37 37 |  | 
| 38 38 | 
             
                def path
         | 
| @@ -40,6 +40,8 @@ module Vendorificator | |
| 40 40 | 
             
                end
         | 
| 41 41 |  | 
| 42 42 | 
             
                def initialize(name, args={}, &block)
         | 
| 43 | 
            +
                  @category = args.delete(:category)
         | 
| 44 | 
            +
             | 
| 43 45 | 
             
                  @name = name
         | 
| 44 46 | 
             
                  @args = args
         | 
| 45 47 | 
             
                  @block = block
         | 
| @@ -51,7 +53,7 @@ module Vendorificator | |
| 51 53 | 
             
                end
         | 
| 52 54 |  | 
| 53 55 | 
             
                def category
         | 
| 54 | 
            -
                  self.class.category
         | 
| 56 | 
            +
                  @category || self.class.category
         | 
| 55 57 | 
             
                end
         | 
| 56 58 |  | 
| 57 59 | 
             
                def branch_name
         | 
    
        data/lib/vendorificator.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vendorificator
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013-02- | 
| 12 | 
            +
            date: 2013-02-03 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: escape
         | 
| @@ -266,7 +266,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 266 266 | 
             
                  version: '0'
         | 
| 267 267 | 
             
                  segments:
         | 
| 268 268 | 
             
                  - 0
         | 
| 269 | 
            -
                  hash:  | 
| 269 | 
            +
                  hash: 4082258902042132214
         | 
| 270 270 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 271 271 | 
             
              none: false
         | 
| 272 272 | 
             
              requirements:
         | 
| @@ -275,7 +275,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 275 275 | 
             
                  version: '0'
         | 
| 276 276 | 
             
                  segments:
         | 
| 277 277 | 
             
                  - 0
         | 
| 278 | 
            -
                  hash:  | 
| 278 | 
            +
                  hash: 4082258902042132214
         | 
| 279 279 | 
             
            requirements: []
         | 
| 280 280 | 
             
            rubyforge_project: 
         | 
| 281 281 | 
             
            rubygems_version: 1.8.24
         |